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


使用的索引名稱:

 

1.隱式轉換導致索引失效。

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

 

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

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

正確的例子:select * from test where id=10;
3.使用<>、not in、not exist、!= 會導致索引失效
4.查詢條件包含or,會導致索引失效。

 

5.索引字段使用 like '%字符串%' 時,會導致索引失效而轉向全表掃描。

 

使用覆蓋索引可以解決。

 

將通配符放置在字符串后面可以解決。

 
6. 變量使用的是times類型,表字段采用date類型。或相反情況。
 
7.當全表掃描速度比索引速度快時,mysql會使用全表掃描。
 
8.mysql5.7中,只有小於等於和小於才會觸發索引。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM