Mysql索引失效的原因

Mysql索引失效的原因

1、最佳左前綴原則——如果索引了多列,要遵守最左前綴原則。指的是查詢要從索引的最左前列開始並且不跳過索引中的列。
2、不在索引列上做任何操作(計算,函數,(自動或者手動)類型裝換),會導致索引失效而導致全表掃描。
3、存儲引擎不能使用索引中範圍條件右邊的列,範圍之後索引失效。(< ,> between and)。這寫條件判斷最後放到後面,先定位到小的範圍再開始。
4、mysql使用不等於(!= 或者<>)的時候,無法使用索引,會導致索引失效
5、mysql中使用is not null 或者 is null會導致無法使用索引。
6、mysql中like查詢是以%開頭,索引會失效變成全表掃描,覆蓋索引。
7、mysql中,如果條件中有or,即使其中有條件帶索引也不會使用(這也是爲什麼儘量少用or的原因)。要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引。
8、如果mysql使用全表掃描要比使用索引快,則不會使用到索引。
相關mysql調優鏈接:Mysql調優

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