1.索引選擇性太差,當查詢影響行數大於全表的25%的時候,即使創建了索引,但mysql查詢優化器還是可能會走全表掃描
2.使用了<>,not in 無法使用索引
3.is null會使用索引,但is not null 不會使用索引
4.在一張表中創建了復合索引,where 子句跳過左側索引列,直接查詢右側索引列,不會使用索引
5.對索引列進行了計算或者使用了函數不會使用索引
怎么看是否使用了索引,使用explain執行計划關鍵詞,下圖展示的是使用了primary主鍵索引,row是1,影響的行數是1,row的值越低則查詢效率越高