日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析索引失效(二)

發(fā)布時間:2024/2/28 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析索引失效(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在 淺析索引失效(一)https://georgedage.blog.csdn.net/article/details/103528262?中,

我們介紹了索引失效的5種方式了,這篇博客將繼續(xù)介紹使索引失效的其他方式,以便大家在工作中寫sql時能完美避免。歡迎交流~


六、對索引列運算(如,+、-、*、/),索引失效。

創(chuàng)表

CREATE TABLE `emp5` (`id` int(11) NOT NULL,`emp_name` varchar(11) NOT NULL,`age` int(11) NOT NULL,PRIMARY KEY (`id`),KEY `idx_age` (`age`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

雖然age加了索引,但是因為它進行運算,索引直接迷路了。。。山重水復(fù)疑無路,算著算著腦瓜疼,索引就真的不認識路了。如圖:?


七、索引字段上使用(!= 或者 < >,not in)時,可能會導致索引失效。

表按照六中的emp5


八、索引字段上使用is null, is not null,可能導致索引失效。

創(chuàng)表

CREATE TABLE `emp6` (`id` int(11) NOT NULL,`emp_name` varchar(11) NOT NULL,`emp_loc` varchar(100) NOT NULL,PRIMARY KEY (`id`),KEY `idx_name` (`emp_name`) USING BTREE,KEY `idx_loc` (`emp_loc`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

九、左連接查詢或者右連接查詢查詢關(guān)聯(lián)的字段編碼格式不一樣,可能導致索引失效。

十、mysql估計使用全表掃描要比使用索引快,則不使用索引。

  • 當表的索引被查詢,會使用最好的索引,除非優(yōu)化器使用全表掃描更有效。優(yōu)化器優(yōu)化成全表掃描取決與使用最好索引查出來的數(shù)據(jù)是否超過表的30%的數(shù)據(jù)。

  • 不要給'性別'等增加索引。如果某個數(shù)據(jù)列里包含了均是"0/1"或“Y/N”等值,即包含著許多重復(fù)的值,就算為它建立了索引,索引效果不會太好,還可能導致全表掃描。

?

Mysql出于效率與成本考慮,估算全表掃描與使用索引,哪個執(zhí)行快。這跟它的優(yōu)化器有關(guān),來看一下它的邏輯架構(gòu)圖吧(圖片來源網(wǎng)上)

最后,希望大家在工作學習中,參考這些索引失效的可能性多點結(jié)合執(zhí)行計劃 expain和場景,具體分析,而不是按部就班,墨守成規(guī),認定哪個情景一定索引失效等等。

總結(jié)

以上是生活随笔為你收集整理的浅析索引失效(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。