最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql回表查詢是什么,回表查詢的使用

 更新時(shí)間:2022年11月21日 09:01:21   作者:小小少年_  
這篇文章主要介紹了mysql回表查詢是什么,回表查詢的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。

在說到什么是回表查詢的時(shí)候,有兩個(gè)概念需要先解釋清楚:分別是聚集索引(聚簇索引)和非聚集索引(非聚簇索引)

聚集索引和非聚集索引

MySQL規(guī)定,在使用InnoDB存儲(chǔ)引擎的時(shí)候,必須且僅有一個(gè)聚集索引,非聚集索引也就是普通索引就看自己設(shè)置的有多少個(gè)了

聚集索引和非聚集索引的區(qū)別

1.聚集索引中的非葉子節(jié)點(diǎn)存儲(chǔ)的是表的主鍵,非聚集索引的非葉子節(jié)點(diǎn)存儲(chǔ)的是自己設(shè)置的索引字段對(duì)應(yīng)的值(如果是聯(lián)合索引,那就是聯(lián)合索引的幾個(gè)字段對(duì)應(yīng)的值)

2.聚集索引的葉子節(jié)點(diǎn),存儲(chǔ)著當(dāng)前表中每條記錄的所有信息;非聚集索引的葉子節(jié)點(diǎn),只存儲(chǔ)當(dāng)前記錄對(duì)應(yīng)的主鍵ID(也就是聚集索引的非葉子節(jié)點(diǎn)存儲(chǔ)的值)

下面這張圖是在網(wǎng)上找的一張截圖

大致就是這個(gè)意思:左邊的是主鍵索引(聚集索引),右邊的是普通索引(非聚集索引)

那回表是什么

如果是通過非主鍵索引進(jìn)行查詢,select所要獲取的字段不能通過非主鍵索引獲取到,需要通過非主鍵索引獲取到的主鍵,從聚集索引再次查詢一遍,獲取到所要查詢的記錄,這個(gè)查詢的過程就是回表

  • 通過執(zhí)行計(jì)劃的Extra字段的值,可以看到當(dāng)前sql是否進(jìn)行了回表
  • 如果Extra字段值為null,我不太確定是否是一定走回表的(待確認(rèn))
  • 但是如果Extra為Using index,則表示當(dāng)前查詢,通過索引覆蓋就可以獲取到當(dāng)前select要的值,無需通過回表查詢記錄

驗(yàn)證

create TABLE hui_biao_test (id int not null auto_increment,name varchar(20),age int(11),first_name varchar(20),CONSTRAINT pk_id PRIMARY KEY(id));
create index index_name on `hui_biao_test`(name);

這是我的sql,創(chuàng)建了一張表,

explain select id,name from `hui_biao_test` where name = '張三';
explain select name from `hui_biao_test` where name = '張三';
explain select name,age from `hui_biao_test` where name = '張三';

下面截圖分別是這三個(gè)sql的執(zhí)行計(jì)劃,可以發(fā)現(xiàn):

第一個(gè)sql和第二個(gè)sql的Extra是Using index,說明前兩個(gè)sql是索引覆蓋,無需回表即可查詢到當(dāng)前要用的數(shù)據(jù);

但是第三個(gè)sql就不可以,因?yàn)橛幸粋€(gè)age字段,在name這個(gè)索引中,沒有age字段的信息,只有id和name(name索引對(duì)應(yīng)的B+樹中的非葉子節(jié)點(diǎn)就是name字段的值,id就是葉子節(jié)點(diǎn)存儲(chǔ)的元素),所以需要通過回表,去主鍵索引查詢到對(duì)應(yīng)的記錄,然后獲取到對(duì)應(yīng)的age屬性

假如說我把name和age設(shè)置為聯(lián)合索引,那最后一個(gè)sql的執(zhí)行計(jì)劃就會(huì)有變化

可以看到,這個(gè)sql的執(zhí)行計(jì)劃中Extra就是Using index

說明當(dāng)前聯(lián)合索引的非葉子節(jié)點(diǎn)中,存儲(chǔ)的是聯(lián)合索引對(duì)應(yīng)的信息;僅通過聯(lián)合索引就可以獲取到select所需要的信息,這樣,就無須再經(jīng)過主鍵索引查詢了

所以,這就是回表的概念

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    SavePoint是數(shù)據(jù)庫(kù)事務(wù)中的一個(gè)概念, 可以將整個(gè)事務(wù)切割為不同的小事務(wù), 可以選擇將狀態(tài)回滾到某個(gè)小事務(wù)發(fā)生時(shí)的樣子,本文給大家分享MySQL事務(wù)的SavePoint重要操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-01-01
  • MySQL模糊查詢語(yǔ)句整理集合

    MySQL模糊查詢語(yǔ)句整理集合

    在本篇文章里小編給大家分享的是一篇關(guān)于MySQL模糊查詢語(yǔ)句整理內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 磁盤寫滿導(dǎo)致MySQL復(fù)制失敗的解決方案

    磁盤寫滿導(dǎo)致MySQL復(fù)制失敗的解決方案

    這篇文章主要介紹了磁盤寫滿導(dǎo)致MySQL復(fù)制失敗的解決方案,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-04-04
  • MySQL重復(fù)數(shù)據(jù)提取最新一條技術(shù)方法詳解

    MySQL重復(fù)數(shù)據(jù)提取最新一條技術(shù)方法詳解

    在MySQL數(shù)據(jù)庫(kù)中清除重復(fù)數(shù)據(jù)是一項(xiàng)常見的任務(wù),下面這篇文章主要給大家介紹了關(guān)于MySQL重復(fù)數(shù)據(jù)提取最新一條的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • CentOS下編寫shell腳本來監(jiān)控MySQL主從復(fù)制的教程

    CentOS下編寫shell腳本來監(jiān)控MySQL主從復(fù)制的教程

    這篇文章主要介紹了在CentOS系統(tǒng)下編寫shell腳本來監(jiān)控主從復(fù)制的教程,文中舉了兩個(gè)發(fā)現(xiàn)故障后再次執(zhí)行復(fù)制命令的例子,需要的朋友可以參考下
    2015-12-12
  • mysql下centos安裝mariadb的方法及遇到的問題

    mysql下centos安裝mariadb的方法及遇到的問題

    這篇文章主要介紹了mysql下centos安裝mariadb的方法及遇到的問題,在安裝之前要?jiǎng)h除之前安裝的mariadb,具體安裝方法及遇到問題解決方法,大家參考下本文
    2018-05-05
  • MySQL日志分析軟件mysqlsla的安裝和使用教程

    MySQL日志分析軟件mysqlsla的安裝和使用教程

    這篇文章主要介紹了MySQL日志分析軟件mysqlsla的安裝和使用教程,文中以Linux系統(tǒng)作為環(huán)境進(jìn)行示例,需要的朋友可以參考下
    2015-11-11
  • mysql刪除表中某一字段重復(fù)的記錄

    mysql刪除表中某一字段重復(fù)的記錄

    一般大家也許會(huì)碰到這個(gè)問題,大家可以參考下,講的比較詳細(xì)
    2008-07-07
  • 淺談MySQL分頁(yè)Limit的性能問題

    淺談MySQL分頁(yè)Limit的性能問題

    這篇文章主要介紹了淺談MySQL分頁(yè)Limit的性能問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • MySQL數(shù)據(jù)庫(kù)優(yōu)化推薦的編譯安裝參數(shù)小結(jié)

    MySQL數(shù)據(jù)庫(kù)優(yōu)化推薦的編譯安裝參數(shù)小結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)優(yōu)化推薦的編譯安裝參數(shù)小結(jié),需要的朋友可以參考下
    2015-04-04

最新評(píng)論

全椒县| 桂东县| 化隆| 新田县| 弥勒县| 盘锦市| 汕尾市| 沁阳市| 腾冲县| 静宁县| 呼和浩特市| 九台市| 泗洪县| 吴旗县| 同心县| 西乡县| 霸州市| 额济纳旗| 连南| 合江县| 达日县| 中江县| 勃利县| 新余市| 沽源县| 临泽县| 苍南县| 峨边| 广安市| 内黄县| 乌兰察布市| 广丰县| 乌拉特前旗| 剑川县| 武穴市| 潞西市| 和林格尔县| 霸州市| 浙江省| 平邑县| 黄大仙区|