索引失效優化方案

2021-10-08 14:50:34 字數 417 閱讀 8018

給索引加上函式索引失效

left(–,3)=『abc』

範圍查詢右側索引失效

emp(age,deptid,name) 其中deptid>10

不等於失效

deptid<>20或者deptid!=20

like後首字母%索引失效

like 『%abc』

型別不匹配失效

emp.name=123其中name是字串

is not null索引失效

deptid is not null

使用ifnull(條件字段,『自定義取值』)!=『自定義取值』 實現is not null效果。

示例:

is not null 可以改為 ifnull(列名,『0』)!=『0』

參考文件:

SQL優化 索引失效

資料型別出現隱式轉換的時候不會命中索引,例如當列型別是字串,一定要將字元常量值用引號引起來。例如 to char 日期,yyyy mm dd 2020 12 10 改寫為 日期 to date 2020 12 10 yyyy mm dd 例如 like 哈哈 like 哈哈 都不會走索引 盡量寫 l...

深入MySQL優化 索引失效

最佳左字首法則 所謂的最佳左字首法則就是查詢時使用到的字段順序需要滿足建立索引時的字段順序。看下面的栗子 在staffs表上,建立 name,age.pos 的索引 可以看到在index表上,name,age,pos的seq in indexx是按照建立索引時的順序從小到大的,即name age p...

Mysql 之索引優化及索引失效

1.最佳左字首法則 如果索引了多列,要遵守最左字首法則.指的是查詢從索引的最左前列開始並且不跳過索引中的列.2.不在索引上左任何操作 計算,函式,自動or手動 型別轉換 會導致索引失效而轉向全表掃瞄 3.儲存引擎不能使用索引中範圍條件右邊的列 4.盡量使用覆蓋索引 只訪問索引的查詢 索引列和查詢列一...