mysql 索引优化法则

 

1.全值匹配
指where的条件尽量跟建立的索引一致


2.最佳左前缀
指按照索引顺序进行设置where筛选条件,,不按顺序或者缺失左边列,则索引会失效


3.不在索引上做任何操作(计数、函数或者类型转换)
指count,sum这类的,会导致索引失效


4.存储引擎不能使用索引中范围条件右边的列
指where条件中,范围条件开始及其之后的,就不纳入索引范围内,且范围筛选条件前的,需要按照索引建立的顺序来设置。


5.尽量使用覆盖索引
指索引列覆盖select查询的列,查询信息会直接从索引中读取,不会读取数据文件,尽量少用select *


6.使用不等于,is null 或者is not null时候,索引失效
原理同范围索引是一样的


7.like查询以通配符开头的,索引会失效
类似 a like ‘%123……’这种索引会失效,如果非要使用,则尽量使用覆盖索引来解决。 


8.字符串不加单引号,索引失效
原理同第3点的类型转换,如果犯这种错误,我觉得您可能不太适合这个岗位


9.用or关键字时,索引失效 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章