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

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

MySQL索引查詢的具體使用

瀏覽:326日期: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久久,三上悠亚国产精品一区二区三区
    美女网站一区| 女人天堂亚洲aⅴ在线观看| 久久久久久久久99精品大| 国产一区二区三区四区| 欧美激情在线精品一区二区三区| 久久精品97| 黄色网一区二区| 成人在线免费观看网站| 日韩毛片视频| 亚洲va中文在线播放免费| 亚洲精品在线影院| 成人自拍av| 丝袜美腿亚洲色图| 日韩美女精品| 精品久久久亚洲| 1000部精品久久久久久久久| 亚洲男女av一区二区| 亚洲v天堂v手机在线| 欧美日韩一区二区三区不卡视频| 免费日韩成人| 99精品在线观看| 美女黄网久久| 国产中文欧美日韩在线 | 国产麻豆综合| 国产欧美日韩在线一区二区| 成人在线观看免费视频| 免费看欧美美女黄的网站| 日韩av影院| 久久在线免费| 国产精品亚洲二区| 99国产精品| 精品欧美日韩精品| 巨乳诱惑日韩免费av| 91一区二区三区四区| 蜜臀av亚洲一区中文字幕| 国产成人精品一区二区免费看京| 亚洲激情欧美| 久久精品国产网站| 丝袜诱惑制服诱惑色一区在线观看| 美女视频黄久久| 日韩三级精品| 欧美久久精品一级c片| 里番精品3d一二三区| 一本综合精品| 亚洲激情精品| 女人av一区| 另类中文字幕国产精品| 美女视频免费精品| 日韩精品一区二区三区av| 亚洲一区亚洲| 亚洲性色视频| 久久男女视频| 国产精品igao视频网网址不卡日韩| 亚洲精品动态| 蜜臀av一区二区三区| 亚洲一区成人| 美女日韩在线中文字幕| 在线一区免费| 午夜日韩福利| 午夜一级久久| 视频一区在线播放| 久久国产福利| 日韩一区二区三区精品| 视频精品一区| 91欧美日韩在线| 欧美一级全黄| 国产美女亚洲精品7777| 五月激激激综合网色播| 青青草国产成人99久久| 国产福利一区二区三区在线播放| 欧美日本久久| www.九色在线| 亚洲激情久久| 欧美精品国产| 国产在线观看www| 红桃视频亚洲| 欧美一区久久| 国产色99精品9i| 日韩.com| 婷婷综合五月| 欧美日韩一区二区三区四区在线观看| 国产精品久久久久77777丨| 日本a级不卡| 国产高潮在线| 亚洲伊人精品酒店| 毛片不卡一区二区| 日韩视频在线一区二区三区 | 伊伊综合在线| 蜜臀va亚洲va欧美va天堂 | 久久国产电影| 日韩激情精品| 在线精品亚洲欧美日韩国产| 亚洲欧美日韩专区| 美女视频黄免费的久久| 欧美精品一线| 成年男女免费视频网站不卡| 亚洲一二av| 日韩精品网站| 久久99青青| 免费精品视频| 三级小说欧洲区亚洲区| 久久精品99国产精品| 国产精品免费看| 欧美三区四区| 99热精品久久| 日韩中文影院| 图片区亚洲欧美小说区| 综合欧美精品| 蜜桃久久久久久| 久久久久久久久99精品大| 国产精品igao视频网网址不卡日韩| 亚洲精品91| 免费一二一二在线视频| 91精品国产自产精品男人的天堂| 久久婷婷丁香| 9999国产精品| 国产成人1区| 精品深夜福利视频| 国产精品国码视频| 国产探花在线精品一区二区| 亚洲精品国产精品粉嫩| 在线精品小视频| 免费毛片在线不卡| 午夜精品免费| 国产视频一区在线观看一区免费| 亚洲a一区二区三区| 日韩久久精品| 久久网站免费观看| 免费毛片在线不卡| 亚洲婷婷在线| 亚洲激情不卡| 影音先锋久久精品| 亚洲精品欧洲| 国产日本久久| 国产999精品在线观看| 日韩高清中文字幕一区二区| 久久毛片亚洲| 欧美特黄一级大片| 亚洲中字黄色| 日韩av一二三| av资源亚洲| 蜜臀精品一区二区三区在线观看 | 欧美精品91| 日韩国产一区二区三区| 亚洲一级高清| 蜜桃视频第一区免费观看| 欧美日韩调教| 国产精品黑丝在线播放| 欧美日韩高清| 国产日韩亚洲欧美精品| 久久一区视频| 亚洲激情av| 国产精品xxx| 精品91久久久久| 国产精品资源| 日韩午夜av| 精品国产亚洲一区二区在线观看| 激情91久久| 久久91视频| 亚洲精品女人| 999久久久国产精品| 日本成人精品| 婷婷亚洲五月| 国产一区二区精品福利地址| 免费久久99精品国产| 国产经典一区| 最新国产精品久久久| 日韩欧美字幕| 精品一区不卡| 911精品国产| 日av在线不卡| 欧美日韩国产欧| 亚洲五月婷婷| 欧洲一区二区三区精品| 国产精品视频首页| 久久精品国产68国产精品亚洲| 国产乱人伦丫前精品视频| 亚洲综合图色| 欧美一区=区| 好看不卡的中文字幕| 国产成人精品一区二区三区视频| 日韩不卡在线观看日韩不卡视频| 在线综合欧美| 日韩视频精品在线观看| 婷婷综合六月| 深夜视频一区二区| 麻豆视频在线观看免费网站黄| 欧美日本久久| 日韩中出av| 裤袜国产欧美精品一区| 欧美日韩1区2区3区| 日韩手机在线| 日韩精品一区二区三区中文字幕| 免费精品视频在线| 午夜在线视频观看日韩17c| 超碰超碰人人人人精品| 日韩一区二区中文| 欧美1区免费| 免费一区二区视频| 日本不卡高清视频|