<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
為了驗證 MySQL 中哪些情況下會導致索引失效,我們可以藉助 explain 執行計劃來分析索引失效的具體場景。
explain 使用如下,只需要在查詢的 SQL 前面新增上 explain 關鍵字即可,如下圖所示:
而以上查詢結果的列中,我們最主要觀察 key 這一列,key 這一列表示實際使用的索引,如果為 NULL 則表示未使用索引,反之則使用了索引。
以上所有結果列說明如下:
其中最重要的就是 type 欄位,type 值型別如下:
const — 將一個主鍵放置到 where 後面作為條件查詢, MySQL 優化器就能把這次查詢優化轉化為一個常數,如何轉化以及何時轉化,這個取決於優化器,這個比 eq_ref 效率高一點。
為了演示和測試那種情況下會導致索引失效,我們先建立一個測試表和相應的資料:
-- 建立表 drop table if exists student; create table student( id int primary key auto_increment comment '主鍵', sn varchar(32) comment '學號', name varchar(250) comment '姓名', age int comment '年齡', sex bit comment '性別', address varchar(250) comment '家庭地址', key idx_address (address), key idx_sn_name_age (sn,name,age) )ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 新增測試資料 insert into student(id,sn,name,age,sex,address) values(1,'cn001','張三',18,1,'高老莊'), (2,'cn002','李四',20,0,'花果山'), (3,'cn003','王五',50,1,'水簾洞');
當前表中總共有 3 個索引,如下圖所示:
PS:本文以下內容基於 MySQL 5.7 InnoDB 資料引擎下。
最左匹配原則指的是,以最左邊的為起點欄位查詢可以使用聯合索引,否則將不能使用聯合索引。 我們本文的聯合索引的欄位順序是 sn + name + age,我們假設它們的順序是 A + B + C,以下聯合索引的使用情況如下:
從上述結果可以看出,如果是以最左邊開始匹配的欄位都可以使用上聯合索引,比如:
其中:A 等於欄位 sn,B 等於欄位 name,C 等於欄位 age。
而 B+C 卻不能使用到聯合索引,這就是最左匹配原則。
模糊查詢 like 的常見用法有 3 種:
而這 3 種模糊查詢中只有第 1 種查詢方式可以使用到索引,具體執行結果如下:
如果索引列使用了運算,那麼索引也會失效,如下圖所示:
查詢列如果使用任意 MySQL 提供的函數就會導致索引失效,比如以下列使用了 ifnull 函數之後的執行計劃如下:
如果索引列存在型別轉換,那麼也不會走索引,比如 address 為字串型別,而查詢的時候設定了 int 型別的值就會導致索引失效,
如下圖所示:
當在查詢中使用了 is not null 也會導致索引失效,而 is null 則會正常觸發索引的,
如下圖所示:
導致 MySQL 索引失效的常見場景有以下 6 種:
到此這篇關於哪些情況會導致 MySQL 索引失效的文章就介紹到這了,更多相關MySQL 索引失效內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45