- from 子句 --> 执行顺序为从后往前、从右到左
表名(最后面的那个表名为驱动表,执行顺序为从后往前, 所以数据量较少的表尽量放后。 - where 子句 --> 执行顺序为自下而上、从右到左
将可以过滤掉大量数据的条件写在where的子句的末尾性能最优 - group by 和 order by 子句执行顺序都为从左到右
- select子句 --> 少用*号
- 避免产生笛卡尔积
- 避免使用*
- 用where子句替换having子句
- 用exists、not exists和in、not in相互替代:原则是哪个的子查询产生的结果集小,就选哪个
- 使用exists替代distinct
- 避免隐式数据类型转换
- 使用索引来避免排序操作
- 尽量使用前端匹配的模糊查询
- 不要在选择性较低的字段建立索引
- 避免对列的操作
- 尽量去掉"IN","OR"
- 尽量去掉"<>"
- 避免在索引列上使用IS NULL或者NOT
- 批量提交sql
网友评论