SQL调优

1.对查询进行优化,首先考虑在where和order by上涉及的列上建立索引。
2.尽量避免在where字句中对字段进行null值的判断,否则将导致搜索引擎放弃使用索引,从而进行全表扫描。(可以考虑在可能为null值的字段上设置默认值)。
3.尽量避免在where字句中使用“!=”或者“<>”操作符,否则将导致引擎放弃使用索引从而进行全表扫描。
4.尽量避免在where字句中使用“or”来做连接条件,否则将导致引擎放弃使用索引从而进行全表扫描(可以用union all 来替代)。“in”和“not in”也要慎用,也会导致全表扫描(连续数据,能用between就不用in)。模糊查询也是如此。
5.不要在where字句后面对字段进行表达式操作,也不要对字段进行函数操作,都将导致引擎放弃使用索引,从而进行全表扫描。即:不要再where字句的“=”左边进行函数、算术运算或其它表达式运算。
6.在使用索引字段作为查询条件时,如果该索引是复合索引。那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,并且尽可能让字段顺序和索引顺序一致(最左原则)。
7.如果有必须使用“in”的需求,可以用exists函数代替。

你可能感兴趣的:(数据库)