亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一文解答什么是MySQL的回表

 更新時(shí)間:2022年08月03日 16:01:24   作者:m0_67403073  
這篇文章主要介紹了一文解答什么是MySQL的回表,回表就是?MySQL要先查詢到主鍵索引,然后再用主鍵索引定位到數(shù)據(jù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,需要的朋友可以參考一下

引言

簡(jiǎn)單來(lái)說(shuō),回表就是 MySQL 要先查詢到主鍵索引,然后再用主鍵索引定位到數(shù)據(jù)。

下面,對(duì)一些問(wèn)題進(jìn)行分析與回答:

  • 什么是聚簇索引?什么是非聚簇索引?
  • 為什么回表要先查到主鍵索引?
  • 主鍵索引和非主鍵索引有什么區(qū)別?
  • 如何避免回表?

聚簇索引和非聚簇索引是什么?

MySQL 的索引有不同的角度的分類方式,例如:按數(shù)據(jù)結(jié)構(gòu)分、按邏輯角度分、按物理存儲(chǔ)分。

其中,按物理存儲(chǔ)分有兩種索引:聚簇索引非聚簇索引

簡(jiǎn)單來(lái)說(shuō),聚簇索引是主鍵索引

主鍵索引之外的就是非聚簇索引,非聚簇索引又叫輔助索引或者二級(jí)索引。

主鍵索引和非主鍵索引有什么區(qū)別?

相同點(diǎn):都使用的是 B+Tree 。

不同點(diǎn):葉子節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)不同

  • 主鍵索引的葉子節(jié)點(diǎn)存儲(chǔ)的是一行完整的數(shù)據(jù);
  • 非主鍵索引的葉子節(jié)點(diǎn)存儲(chǔ)的是主鍵值。葉子節(jié)點(diǎn)不包含記錄的全部數(shù)據(jù),非主鍵的葉子節(jié)點(diǎn)除了用來(lái)排序的 key 還包含一個(gè)書(shū)簽(bookmark),其中存儲(chǔ)了聚簇索引的 key。

那么這兩種索引在使用方面上有什么區(qū)別呢?

使用主鍵索引查詢:

# 主鍵索引的的葉子節(jié)點(diǎn)存儲(chǔ)的是**一行完整的數(shù)據(jù)**,
# 所以只需搜索主鍵索引的 B+Tree 就可以輕松找到全部數(shù)據(jù)
select * from user where id = 1;

使用非主鍵索引查詢:

# 非主鍵索引的葉子節(jié)點(diǎn)存儲(chǔ)的是**主鍵值**,
# 所以MySQL會(huì)先查詢到 name 列的索引的 B+Tree,搜索得到對(duì)應(yīng)的主鍵值
# 然后再去搜索該主鍵值查詢主鍵索引的 B+Tree 才可以找到對(duì)應(yīng)的數(shù)據(jù)
select * from user where name = 'Jack';

可以看出使用非主鍵索引要比主鍵索引多使用一次 B+Tree。

B-Tree 和 B+Tree 的簡(jiǎn)單理解

理解聚簇索引和非聚簇索引的關(guān)鍵在于 B+Tree 的理解。

用一幅圖來(lái)表示,其它的就不再過(guò)多解釋了:

這里只是簡(jiǎn)單介紹一下 B-Tree 和 B+Tree 的區(qū)別:

  • B+樹(shù)中只有葉子節(jié)點(diǎn)會(huì)帶有指向記錄的指針,而B(niǎo)樹(shù)則所有節(jié)點(diǎn)都帶有,在內(nèi)部節(jié)點(diǎn)出現(xiàn)的索引項(xiàng)不會(huì)再出現(xiàn)在葉子節(jié)點(diǎn)中。
  • B+樹(shù)中所有葉子節(jié)點(diǎn)都是通過(guò)指針連接在一起,而B(niǎo)樹(shù)不會(huì)。

如何避免回表?

使用覆蓋索引,所謂覆蓋索引就是指索引中包含了查詢中的所有字段,這種情況下就不需要再進(jìn)行回表查詢了。

到此這篇關(guān)于一文解答什么是MySQL的回表的文章就介紹到這了,更多相關(guān)MySQL回表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 虛擬機(jī)Centos7安裝MySQL數(shù)據(jù)庫(kù)實(shí)踐

    虛擬機(jī)Centos7安裝MySQL數(shù)據(jù)庫(kù)實(shí)踐

    用戶分享在虛擬機(jī)安裝MySQL的全過(guò)程及常見(jiàn)問(wèn)題解決方案,包括處理GPG密鑰、修改密碼策略、配置遠(yuǎn)程訪問(wèn)權(quán)限及防火墻設(shè)置,最終通過(guò)關(guān)閉防火墻和停止NetworkManager解決網(wǎng)絡(luò)連接異常問(wèn)題
    2025-07-07
  • MySQL大庫(kù)搭建主從的一種思路分享

    MySQL大庫(kù)搭建主從的一種思路分享

    這篇文章主要介紹了MySQL大庫(kù)搭建主從的一種思路分享,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-03-03
  • 分析mysql中一條SQL查詢語(yǔ)句是如何執(zhí)行的

    分析mysql中一條SQL查詢語(yǔ)句是如何執(zhí)行的

    為了充分發(fā)揮MySQL的性能并順利地使用,就必須正確理解其設(shè)計(jì)思想,因此,了解MySQL的邏輯架構(gòu)是必要的。本文將通過(guò)一條SQL查詢語(yǔ)句的具體執(zhí)行過(guò)程來(lái)詳細(xì)介紹MySQL架構(gòu)中的各個(gè)組件
    2021-06-06
  • mysql查詢表里的重復(fù)數(shù)據(jù)方法

    mysql查詢表里的重復(fù)數(shù)據(jù)方法

    這篇文章主要介紹了mysql查詢表里的重復(fù)數(shù)據(jù)方法,需要的朋友可以參考下
    2017-05-05
  • 淺談MySQL中float、double、decimal三個(gè)浮點(diǎn)類型的區(qū)別與總結(jié)

    淺談MySQL中float、double、decimal三個(gè)浮點(diǎn)類型的區(qū)別與總結(jié)

    這篇文章主要介紹了淺談MySQL中float、double、decimal三個(gè)浮點(diǎn)類型的區(qū)別與總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • mysql show操作簡(jiǎn)單示例

    mysql show操作簡(jiǎn)單示例

    這篇文章主要介紹了mysql show操作,結(jié)合簡(jiǎn)單實(shí)例形式總結(jié)分析了mysql使用show語(yǔ)句顯示各種常見(jiàn)信息相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • Java將excel中的數(shù)據(jù)導(dǎo)入到mysql中

    Java將excel中的數(shù)據(jù)導(dǎo)入到mysql中

    這篇文章主要介紹了Java將excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,需要的朋友可以參考借鑒
    2018-05-05
  • IDEA配置連接MYSQL數(shù)據(jù)庫(kù)遇到Failed這個(gè)問(wèn)題解決

    IDEA配置連接MYSQL數(shù)據(jù)庫(kù)遇到Failed這個(gè)問(wèn)題解決

    這篇文章主要介紹了IDEA配置連接MYSQL數(shù)據(jù)庫(kù)遇到Failed這個(gè)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL數(shù)據(jù)庫(kù)操作DML?插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù)

    MySQL數(shù)據(jù)庫(kù)操作DML?插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)操作DML插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù),DML是指數(shù)據(jù)操作語(yǔ)言,英文全稱是Data?Manipulation?Language,用來(lái)對(duì)數(shù)據(jù)庫(kù)中表的數(shù)據(jù)記錄進(jìn)行更新
    2022-07-07
  • Mysql5.6修改root密碼教程

    Mysql5.6修改root密碼教程

    今天小編就為大家分享一篇關(guān)于Mysql5.6修改root密碼教程,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02

最新評(píng)論