Mysql中避免索引失效的幾種方法

2021-10-08 17:17:42 字數 432 閱讀 5504

全值匹配:對索引欄位都指定值;

遵循最左匹配原則:

1))從左到右如果出現跳躍某一列,則只有跳躍前的索引生效;

2))從左到右,分別指定值則分別各欄位索引生效;

如果索引列出現範圍查詢,則範圍查詢右邊的列索引失效;

如果在索引列上做計算,則索引失效;

如果索引列中字串不加單引號,則索引失效;

select *索引失效,因此盡量走覆蓋索引;

中間有or連線的字段,所有索引都失效;

%開頭的模糊匹配字段索引失效,%結尾的模糊匹配索引正常(解決方法是該字段建立索引形成覆蓋索引);

系統評估索引時間比全表時間長,則索引失效;

is null 和is not null有時索引失效;

in子查詢走索引,但是not in子查詢索引失效;

盡量建立復合索引,少使用單列索引;

MySQL 中索引優化(即避免索引失效)

全值匹配 查詢欄位按順序在索引中都可以找到。最左字首法則 查詢欄位與索引欄位不同時,會導致索引失效,即如果索引了多列,則查詢欄位從索引最左前列開始,不要跳過已有索引列。不要再索引上做任何計算 包括計算 函式 自動或手動 型別轉換。索引列上不能有範圍 將可能做範圍查詢的字段放在索引順序的最後。盡量使用...

避免索引失效

1.全值匹配,對索引中所有列都指定具體值。2.最左字首法則,如果索引有多列,要遵循最左字首法則。指的是查詢從索引的最左前列開始,並且不跳過索引中的列。否者不走索引。3.範圍查詢右邊的列,不走索引,應為mysql底層範圍查詢之後結構就斷了,就無法使用後面得索引了。4.不要在索引列上進行運算操作,索引將...

Mysql的索引失效(應避免)(十)

type system const eq ref ref range index all 一般來說 查詢要達到index級別,最好能達到ref 案例1 create index girl cup money on girl age,cup size,money show index from gir...