天天看點

索引之----mysql單列索引失效的情況

使用的索引名稱:

索引之----mysql單列索引失效的情況

1.隐式轉換導緻索引失效。

由于表字段定義為vachar類型,但在查詢時把該字段作為number類型 以及where條件傳給mysql。

索引之----mysql單列索引失效的情況
索引之----mysql單列索引失效的情況

2.對索引列進行任何操作(計算(+、-、*、/等)、函數、自動/手動類型轉換)導緻索引失效。

錯誤的例子:select * from test where id-1=9;

正确的例子:select * from test where id=10;

3.使用<>、not in、not exist、!= 會導緻索引失效

4.or語句前後沒有同時使用索引。當or左右查詢字段隻有一個是索引,該索引失效,隻有當or左右查詢字段均為索引時,才會生效

索引之----mysql單列索引失效的情況

5.like 以%開頭,索引無效;當like字首沒有%,字尾有%時,索引有效。

索引之----mysql單列索引失效的情況
索引之----mysql單列索引失效的情況
索引之----mysql單列索引失效的情況

6. 變量使用的是times類型,表字段采用date類型。或相反情況。

7.當全表掃描速度比索引速度快時,mysql會使用全表掃描。

8.mysql5.7中,隻有小于等于和小于才會觸發索引。

索引失效分析工具:

繼續閱讀