如何优化 WHERE 子句?

简介: 如何优化 WHERE 子句?

1. 避免在 where 子句中使用!= 和 <> 进行不等于判断,这样会导致放弃索引进行全表扫描。

2. 避免在 where 子句中使用 null 或空值判断,会导致放弃索引进行全表扫描,尽量设置字段为 not null。

3. 避免在 where 子句中使用参数,会导致全表扫描

4. 避免在 where 子句中对字段及进行表达式或者函数操作,会导致存储引擎放弃索引进而全表扫描

5. 尽量使用 union all 代替 or,因为如果两个字段中有一个没有索引的话,引擎就会放弃索引进行全表扫描。

6. 尽量减少子查询,可以使用关联查询(left join,right join,inner join)替代子查询。

7. 尽量使用 exists、not exists 替代 in 或者 not in,因为会进行全表扫描。

8. 可以在 where 和 order by 涉及的列建立索引,从来提高查询效率。

9. 避免使用 SELECT *,按需求查找相关列。

相关文章
|
前端开发 Java
前端基础 - 常用调试方式
前端基础 - 常用调试方式
202 0
|
缓存 网络协议 前端开发
【前端面试知识点】- 1. http&https
http: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。
【前端面试知识点】- 1. http&https
|
JavaScript
npm install less-loader报错 npm查看版本号
npm install less-loader报错 npm查看版本号
858 0
npm install less-loader报错 npm查看版本号
|
缓存 负载均衡 前端开发
详解正向代理和反向代理的不同用途
详解正向代理和反向代理的不同用途
518 10
|
机器学习/深度学习 人工智能 自然语言处理
简单易用高性能!一文了解开源迁移学习框架EasyTransfer
近日,阿里云正式开源了深度迁移学习框架EasyTransfer,这是业界首个面向NLP场景的深度迁移学习框架。该框架由阿里云机器学习PAI团队研发,让自然语言处理场景的模型预训练和迁移学习开发与部署更加简单和高效。本文将对EasyTransfer进行深度解读。开源地址:https://github.com/alibaba/EasyTransfer
4954 0
简单易用高性能!一文了解开源迁移学习框架EasyTransfer
|
机器学习/深度学习 编解码 Python
python将照片集变成视频
`shigen`是一位坚持更新文章的博客作者,记录成长历程,分享认知见解,留住生活感动。他利用Python库`Pillow`和`MoviePy`开发了一个工具,能够批量处理照片并生成高质量视频。该工具支持多种分辨率、自定义播放时间和照片方向,并能自动调整照片比例以实现居中对齐。通过简单的代码实现了照片视频化的需求,适合强迫症患者使用。**与shigen一起,每天不一样!**个人IP:shigen。
320 9
python将照片集变成视频
|
安全 关系型数据库 MySQL
linux 安装 mysql步骤
linux 安装 mysql步骤
1195 0
|
数据采集 存储 数据可视化
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
本文介绍了一个基于Python Django框架的智联招聘数据采集与分析系统,该系统具备登录注册功能,允许用户自主选择采集内容,并通过对数据的分析和可视化展示,帮助企业和招聘者优化招聘策略。
410 1
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
|
JSON 前端开发 Java
SpringBoot 入门 参数接收 必传参数 数组 集合 时间接收
SpringBoot 入门 参数接收 必传参数 数组 集合 时间接收
|
监控 测试技术 持续交付
如何在 Databricks 中实现 CI CD 管道?
【8月更文挑战第13天】
221 2