MySql 索引優化 和 避免索引失效

建表和索引
在這裏插入圖片描述

索引優化法則

1、全值匹配我最愛
全值匹配案例:
在這裏插入圖片描述

最佳左前綴法則:
在這裏插入圖片描述

如果中間斷了,那麼只部分使用了索引,只有前面的的字段使用了索引

在這裏插入圖片描述

不在索引列上做任何操作(計算,函數,…)
在這裏插入圖片描述

索引中範圍條件右邊的列全失效
在這裏插入圖片描述

儘量使用覆蓋索引

覆蓋索引,直接去索引中取數據,不去表中取數據,大大提高效率
在這裏插入圖片描述

mysql 在使用不等於(!= 或者 <>)的時候無法使用索引導致全表掃描
在這裏插入圖片描述

is null , not null 也無法使用索引
在這裏插入圖片描述

like以通配符開頭(‘%abc…’) mysql索引失效會變成全表掃描

案例如下: %只有寫在最右邊的索引纔會生效
在這裏插入圖片描述

解決like '%字符串%'時索引不被使用的方法?(使用覆蓋索引解決)

使用覆蓋索引,查詢的字段儘量是索引的字段
在這裏插入圖片描述
未使用覆蓋索引會失效,查詢的字段沒有索引
email 沒有使用索引在這裏插入圖片描述

字符串不加單引號索引失效

少用or,用來連接時會導致索引失效
在這裏插入圖片描述

總結

在這裏插入圖片描述

案例

ordey by 排序 也要是 最佳左前綴法則,不然排序會失效
在這裏插入圖片描述
在這裏插入圖片描述

索引優化建議

在這裏插入圖片描述

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