避免使用null值判断
一般来说,使用null值判断时,一般都是全表检索,但是有例外,覆盖索引时索引会生效。
尽量使用索引
在where条件列或者order by 等涉及的列上加上索引,能够有效地避免全表扫描,缩小查询范围,加快数据检索的速度。
最佳左前缀原则
出现联合索引时,必须联合索引中的第一个字段作为条件才能保证使用到该索引,并且尽量保证条件中列的顺序与索引中列的顺序一致。
1)、增加列和联合索引
2)、测试
不要在索引列上进行计算
使用索引时,在符号(eg:=)左侧进行计算操作(eg:函数等)会导致索引失效,进行全表扫描。
尽量避免范围查询(< > 等)
范围查询可能导致索引失效而进行全表扫描,所以应当尽量避免范围查询。如果一定需要进行范围查询,则将范围查询的列放在查询条件的最后面,此时需要考虑联合索引的合理性(eg:将范围查询列放在索引中的最后)。
字符串型列加引号
不加引号会导致索引失效
尽量不使用模糊查询
模糊查询(eg:like %abc%)可能导致索引失败而进行全表检索。当like的值的离散度较大,like 'abc%'会使用索引;离散值较小时,like 'abc%'也可能导致索引失效。
如果有写的不对的地方,请大家多多批评指正,非常感谢!