mysql中查詢不使用索引的情況

索引,但用不上的情況:

在數(shù)據(jù)庫表中,使用索引可以提高查詢速度。但是索引并不是對所有的查詢操作都會生效的。比如以下幾種情況,將導致索引失效:

1、如果查詢條件用or,必須or條件中的每個列都加上索引,否則無效。

2、對于復合索引(又叫多列索引或者聯(lián)合索引),如果查詢的列不使用復合索引的第一部分,則不使用索引。例如,tb表的復合索引為(key1,key2,key3),則查詢select * from tb where key2=1 and key2>5將不會使用索引。

3、如果like是以%開頭的,則該列上的索引不會被使用。例如:select * from tb where key1 like "%a"; 即使key1列上建立了索引,該查詢也不會使用索引。

4、存在索引列的數(shù)據(jù)類型隱形轉(zhuǎn)換,則不使用索引。例如:列key1的數(shù)據(jù)類型為字符串,select * from tb where key1=1; 將不會使用索引。要想使用索引,必須將字符串用引號印起來。

5、where字句里對索引列有數(shù)學運算或者使用函數(shù),則不使用索引。


不推薦使用索引的情況:

1、數(shù)據(jù)唯一性差(一個字段的取值只有幾種情況)的字段不要使用索引:

例如性別,只有兩種可能數(shù)據(jù)。意味著索引的二叉樹級別少,這樣的二叉樹查詢無異于全表掃描。

2、頻繁更新的字段不要使用索引:

例如login_count登陸次數(shù),頻繁變化導致索引也頻繁變化,增大數(shù)據(jù)庫工作量,降低效率。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • MYSQL 基礎知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 8,057評論 5 115
  • 花了3天時間學習MySql,考了個二級MySql 書籍參考:高等教育出版社《全國計算機等級考試二級教程-MySQL...
    如果仲有聽日閱讀 1,367評論 4 4
  • 轉(zhuǎn)載:http://blog.codinglabs.org/articles/theory-of-mysql-in...
    qf1007閱讀 1,380評論 0 0
  • 郭相麟 當人有所成就時,容易陷入自鳴得意的狀況:看人神情不屑一顧,眼神透著不可一世,眼高手低的指點江山,眾人在他眼...
    郭相麟閱讀 232評論 0 0
  • 2018年9月7日紅源悟語 自我覺醒:想都是問題,做才是答案! 今日成長 抓住能抓住的,你才能順著抓住的東西前行!...
    紅源隨筆閱讀 156評論 0 0

友情鏈接更多精彩內(nèi)容