如何避免索引失效 1、全值匹配我最愛 建立幾個複合索引欄位,最好就用上幾個欄位。且按照順序來用。 2、最佳左首碼法則 如果索引了多列,要遵守最左首碼法則,指的是查詢從索引的最左前列開始,不跳過索引中間的列。 3、不再索引列上做任何操作(計算、函數、(自動or手動)類型轉換),會導致索引失效而轉向全表 ...
如何避免索引失效
1、全值匹配我最愛
建立幾個複合索引欄位,最好就用上幾個欄位。且按照順序來用。
2、最佳左首碼法則
如果索引了多列,要遵守最左首碼法則,指的是查詢從索引的最左前列開始,不跳過索引中間的列。
3、不再索引列上做任何操作(計算、函數、(自動or手動)類型轉換),會導致索引失效而轉向全表掃描。
4、存儲引擎不能使用索引中範圍條件右邊的列。
若中間索引列用到了範圍,則後面的索引全失效。
5、儘量使用覆蓋索引(只訪問索引的查詢(索引列和查詢列一致)),減少select* 。
覆蓋索引是select的數據列只用從索引中就能夠取得,不必讀取數據行,換句話說查詢列要被所建的索引覆蓋。
6、Mysql在使用不等於(!=或者<>)的時候無法使用索引會導致全表掃描。
7、IS NULL和IS NOT NULL也無法使用索引
8、like以通配符開頭('%abc...')mysql索引失效會變成全表掃描的操作
9、字元串不加單引號索引失效
10、用or來連接時索引會失效應少用。
索引優化口訣: