日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL索引查詢的具體使用

瀏覽:324日期:2023-05-08 10:17:44
目錄
  • 索引的分類
    • 聚簇索引
    • 非聚簇索引
  • 實戰理解

    我們都知道MySQL的輔助索引可以提升檢索效率,但是為什么有的時候,走輔助索引反而不如走主鍵索引的效率高呢?這里我覺得需要先弄懂輔助索引的底層原理以及回表查詢的概念。

    ps:下邊我們討論的場景主要是針對innodb存儲引擎為前提。

    索引的分類

    在我們給MySQL表建立索引的時候,一共有兩種,分別是聚簇索引,非聚簇索引。

    聚簇索引

    聚簇索引會將索引和對應的行記錄數據內容都統一存放在同一個葉子節點中。例如下圖所示:

    從上圖中我們可以看到,最上頭是非葉子結點,這種非葉子結點里面存儲的是主鍵id的值,而非葉子結點的內部會有個數據頁的指針,這些指針會指向下層的B+樹節點,一般B+樹的最底層我們稱之為葉子結點。在聚簇索引的葉子結點里面,會存儲主鍵id和對應的行記錄內容。

    非聚簇索引

    非聚簇索引的結構如下所示:

    可以看到,在非聚簇索引中,所有的葉子結點都包含了輔助索引的值和主鍵的值。而當我們要根據輔助索引查詢的時候,最終就會通過使用輔助索引定位到具體的葉子結點,最后根據葉子節點里面的主鍵id去聚簇索引的b+樹中檢索具體的行記錄。

    下邊我們通過一組代碼案例來深入了解下回表的知識點。

    實戰理解

    首先需要創建一張表用于做測試:

    CREATE TABLE `t_common` (  `a` int unsigned NOT NULL AUTO_INCREMENT,  `b` int DEFAULT NULL,  `c` int DEFAULT NULL,  `d` int DEFAULT NULL,  PRIMARY KEY (`a`),  KEY `ud_b_c` (`b`,`c`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3;

    然后我們插入一些測試數據:

    INSERT INTO `t_common` (`a`, `b`, `c`, `d`)VALUES	(1, 1, 1, 1),	(2, 2, 2, 2);

    接著我們來看看下邊的幾個sql案例:

    1.全表掃描

    select a,b,c,d from t_common;

    explain結果如下:

    可以看到這條sql需要從mysql中檢索出a,b,c,d四個字段,走的是全表掃描,并沒有走索引。

    2.按照c關鍵字查詢

    select a,b,c,d from t_common where c=1;

    explain結果如下:

    可以看到,這里也是走了全表掃描。

    3.按照b關鍵字查詢

    select a,b,c,d from t_common where c=1;

    explain結果如下:

    可以看到,結果是走了b,c聯合索引。這里的結果也應證了最左匹配原則的說法。但是這里因為查詢出來的d字段不在bc索引樹上,因此需要回表。

    4.按照c關鍵字查詢,只返回b,c字段

    select b,c from t_common where c=1;

    explain結果如下:

    這種情況有點特殊,按理說他是不滿足最左匹配原則的,但是由于檢索的內容正好是輔助索引的字段,同時掃描輔助索引的IO開銷要比掃描主鍵索引的IO開銷小,所以這里的查詢對輔助索引樹進行了全表掃描。

    (開銷更小的原因是:因為主鍵索引存儲的是行記錄,加載的數據更多。走普通索引的時候,葉子節點存儲的是主鍵id值,這樣一次加載的數據會更多,走普通索引效率比主鍵索引要高。)

    5.按照c關鍵字查詢,返回a,b,c字段

    select a,b,c from t_common where c=1;

    explain結果如下:

    這種情況和上邊的情況相同,由于c的查詢不滿足最左匹配原則,原先是不不應該走b,c索引的,但是后期優化器發現,需要查詢的字段正好是輔助索引的字段內容,而掃描輔助索引的IO開銷要比掃描主鍵索引的IO開銷小,所以這里的查詢對輔助索引樹進行了全表掃描。

    (開銷更小的原因是:因為主鍵索引存儲的是行記錄,加載的數據更多。走普通索引的時候,葉子節點存儲的是主鍵id值,這樣一次加載的數據會更多,走普通索引效率比主鍵索引要高。)

    6.按照b關鍵字進行查詢,查詢a,b,c,是否有回表

    select a,b,c from t_common where b=1;

    explain結果如下:

    這種情況下,要注意,由于我們的bc索引的葉子結點包含了主鍵的值,所以其實減少了回表查詢的情況。但是如果我們看回上邊所說的第三種情況,第三種查詢其實還需要通過一次回表的操作,去查詢d的值。

    7.如果查詢的字段包含了主鍵索引和輔助索引,優先走輔助索引

    select a,b,c from t_common;

    explain結果:

    因為主鍵索引存儲的是行記錄,加載的數據更多。走普通索引的時候,葉子節點存儲的是主鍵id值,這樣一次加載的數據會更多,走普通索引效率比主鍵索引要高。所以這條sql直接掃描了整個b,c聯合索引樹。

    到此這篇關于MySQL索引查詢的具體使用的文章就介紹到這了,更多相關MySQL索引查詢內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: MySQL
    相關文章:
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    91福利精品在线观看| 激情综合激情| 久久中文字幕av| 久久久精品久久久久久96| 久久精品xxxxx| 国产精品日韩精品中文字幕| 日韩国产一区二| 欧美亚洲一区二区三区| 国产午夜久久av| 免费看日韩精品| 亚洲天堂日韩在线| 青草国产精品久久久久久| 国产午夜一区| 色8久久久久| 97久久亚洲| 精品视频一区二区三区在线观看| 99久久久久国产精品| 午夜欧美在线| 日韩中文字幕| 黄色精品视频| 欧洲av不卡| 在线观看视频免费一区二区三区| 日韩精品一区二区三区免费视频 | 中文字幕免费精品| 欧美在线看片| 欧美天堂视频| 亚洲专区在线| 欧美激情91| 免费在线观看精品| 久久久久久网| 日韩不卡在线观看日韩不卡视频| 久久免费精品| 国产日韩三级| 久久婷婷一区| 久久精品av麻豆的观看方式| 国产成人黄色| 在线日韩成人| 99视频精品视频高清免费| 日韩一区二区三区免费视频| av中文字幕在线观看第一页| 亚洲婷婷丁香| 99国产精品一区二区| 国产调教一区二区三区| 国产视频一区免费看| 亚洲欧洲美洲av| 青青草精品视频| 国产精品视频一区二区三区综合| 亚洲一区二区动漫| 成人看片网站| 98精品久久久久久久| 日韩精彩视频在线观看| 1024精品久久久久久久久| 精品美女久久| 91精品国产自产观看在线| 美女少妇全过程你懂的久久| 国产精品精品| 国产精品99精品一区二区三区∴| 亚洲在线一区| 亚洲视频播放| 在线亚洲欧美| 宅男在线一区| 免费av一区二区三区四区| 国产在线观看91一区二区三区| 亚洲精品精选| 三级久久三级久久久| 亚洲免费毛片| 视频一区二区不卡| 亚洲免费网址| 模特精品在线| 日韩欧美三区| 国产欧美激情| 精品国产欧美日韩一区二区三区| 精品一区二区男人吃奶 | 性一交一乱一区二区洋洋av| 国户精品久久久久久久久久久不卡| 久久精品一区二区三区中文字幕| 国产麻豆精品久久| 深夜福利亚洲| 欧美在线首页| 国产资源在线观看入口av| 日韩不卡在线| 亚洲一区二区网站| 欧美影院三区| 亚洲va久久| 国产精品美女在线观看直播| 国产精品久久| 久久青青视频| 视频一区中文| 亚洲精品在线二区| 欧美极品中文字幕| 欧美黄色网页| 亚洲精品高潮| 国产午夜一区| 激情婷婷亚洲| 国产精品v一区二区三区| 久久一级电影| 国产精品xxx在线观看| 激情偷拍久久| 久久精品亚洲| 水野朝阳av一区二区三区| 久久超级碰碰| 免费看精品久久片| 超碰超碰人人人人精品| 香蕉久久一区| 久久久人人人| 日本精品黄色| 国产午夜精品一区在线观看| 日本不良网站在线观看| 亚洲日本国产| 91精品高清| 97se综合| 麻豆久久久久久| 丝袜美腿亚洲一区| 欧美/亚洲一区| 91一区二区三区四区| 日本a级不卡| 免费人成网站在线观看欧美高清| 波多视频一区| 国产精品蜜芽在线观看| 欧美日本精品| 亚洲精品中文字幕99999| 亚洲免费高清| 精品免费在线| 老鸭窝一区二区久久精品| 亚洲精品伦理| 日本不卡视频在线观看| 免费看精品久久片| 午夜一区在线| 六月丁香综合| 日韩精品一二区| 视频在线观看一区| 国产亚洲精品久久久久婷婷瑜伽| 日韩国产一区| 亚洲成人精品| 欧美69视频| 国产毛片久久| 天堂av一区| 日韩精品中文字幕吗一区二区| 日韩中文字幕一区二区高清99| 亚洲香蕉久久| 亚洲欧洲免费| 天堂久久一区| 国产探花在线精品| 国产精品久久久免费| 国产精品久久久久久久久久白浆| 国产午夜久久av| 国产一区二区三区四区五区| 亚洲日本网址| 亚洲综合电影一区二区三区| 日韩一区二区三区精品| 久久精品一本| 在线综合亚洲| 香蕉视频成人在线观看| 欧美日韩一视频区二区| 国产在线看片免费视频在线观看| 亚洲激情久久| 91精品国产自产在线丝袜啪| 国产精品精品国产一区二区| 老司机久久99久久精品播放免费| 国产欧美日韩综合一区在线播放| 日韩久久精品网| 亚洲精品乱码| 久久九九99| 国产免费久久| 国产亚洲一级| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 九色porny丨国产首页在线| 福利视频一区| 日韩精品视频网站| 欧美丝袜一区| 国产精品久久国产愉拍| 蜜桃91丨九色丨蝌蚪91桃色| 日本一二区不卡| 欧美日韩一区二区国产| 亚洲一区不卡| 日韩理论片av| 精品国产一区二区三区av片| 色8久久久久| 免费日韩av| 五月天久久网站| 神马午夜在线视频| 欧美国产视频| 中文字幕中文字幕精品| 一区在线免费观看| av中文资源在线资源免费观看| 国产精品igao视频网网址不卡日韩 | 欧美 日韩 国产一区二区在线视频 | 亚洲欧洲日韩| 综合激情网...| 亚洲啊v在线免费视频| 六月丁香综合| 狠狠久久婷婷| 美女亚洲一区| 中文在线一区| 六月天综合网| 亚洲人妖在线| 日本欧美在线| 国产精品一卡| 精品一区二区三区的国产在线观看 | 免费在线成人|