1箕母、最佳左前綴原則——如果索引了多列,要遵守最左前綴原則俱济。指的是查詢要從索引的最左前列開始并且不跳過索引中的列司蔬。
2、不在索引列上做任何操作(計(jì)算姨蝴,函數(shù)俊啼,(自動(dòng)或者手動(dòng))類型裝換),會(huì)導(dǎo)致索引失效而導(dǎo)致全表掃描
3左医、存儲(chǔ)引擎不能使用索引中范圍條件右邊的列授帕,范圍之后索引失效同木。(< ,> between and)
4、mysql使用不等于(!= 或者<>)的時(shí)候跛十,無法使用索引彤路,會(huì)導(dǎo)致索引失效
5、mysql中使用is not null 或者 is null會(huì)導(dǎo)致無法使用索引
6芥映、mysql中l(wèi)ike查詢是以%開頭洲尊,索引會(huì)失效變成全表掃描,覆蓋索引奈偏。
7坞嘀、mysql中,字符串不加單引號(hào)索引會(huì)失效惊来。
8丽涩、mysql中,如果條件中有or裁蚁,即使其中有條件帶索引也不會(huì)使用(這也是為什么盡量少用or的原因)矢渊。要想使用or,又想讓索引生效枉证,只能將or條件中的每個(gè)列都加上索引
?like KK%相當(dāng)于=常量矮男,%KK和%KK% 相當(dāng)于范圍