欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中的聚集索引、二級(jí)索引使用解讀

 更新時(shí)間:2025年07月05日 09:11:10   作者:言之。  
這篇文章主要介紹了MySQL中的聚集索引、二級(jí)索引使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

以下是關(guān)于聚集索引、二級(jí)索引(非聚集索引)以及回表查詢的重點(diǎn)內(nèi)容:

在這里插入圖片描述

聚集索引

定義與特點(diǎn):聚集索引是將數(shù)據(jù)存儲(chǔ)與索引放在一塊兒,B樹(shù)索引結(jié)構(gòu)的葉子節(jié)點(diǎn)保存了整行數(shù)據(jù),并且有且只能有一個(gè),通常情況下是主鍵。

選舉規(guī)則

  • 若表中有主鍵,那么主鍵就是聚集索引。
  • 若表沒(méi)有主鍵,會(huì)查看是否有唯一索引,若有則將唯一索引當(dāng)作聚集索引。
  • 若表既沒(méi)有主鍵也沒(méi)有唯一索引,InnoDB引擎會(huì)自動(dòng)生成一個(gè)隱藏的聚集索引。

在這里插入圖片描述

二級(jí)索引(非聚集索引)

  • 定義與特點(diǎn):二級(jí)索引將數(shù)據(jù)與索引分開(kāi)存儲(chǔ),B樹(shù)索引結(jié)構(gòu)的葉子節(jié)點(diǎn)關(guān)聯(lián)的是對(duì)應(yīng)的主鍵,一個(gè)表中可以有多個(gè)二級(jí)索引。
  • 存儲(chǔ)結(jié)構(gòu)示例:以給表中的name字段添加索引為例,其在B樹(shù)中葉子節(jié)點(diǎn)存儲(chǔ)的是對(duì)應(yīng)數(shù)據(jù)的主鍵值,而非整行數(shù)據(jù),這與聚集索引存儲(chǔ)整行數(shù)據(jù)不同。

回表查詢

在這里插入圖片描述

過(guò)程示例

  • 假設(shè)有查詢語(yǔ)句select * from user where name = 'arm',由于給name字段添加了索引,
  • 會(huì)先走二級(jí)索引。從根節(jié)點(diǎn)開(kāi)始比對(duì),
  • 找到對(duì)應(yīng)的節(jié)點(diǎn)(如找到arm對(duì)應(yīng)的節(jié)點(diǎn)),但此時(shí)二級(jí)索引只能拿到主鍵值(如10),
  • 因?yàn)椴樵冋Z(yǔ)句是“select *”需要整行數(shù)據(jù),所以要拿著主鍵值(10)再到聚集索引中查找。
  • 在聚集索引中同樣從根節(jié)點(diǎn)比對(duì),最終定位到整行數(shù)據(jù)。

定義

  • 先通過(guò)二級(jí)索引找到對(duì)應(yīng)的主鍵值,然后拿到主鍵再到聚集索引中找到整行數(shù)據(jù)的過(guò)程就是回表查詢。

面試回答技巧

  • 當(dāng)被問(wèn)到“什么是聚集索引和非聚集索引”時(shí),回答應(yīng)包含聚集索引是數(shù)據(jù)與索引放一塊,葉子節(jié)點(diǎn)存整行數(shù)據(jù),一般是主鍵且只有一個(gè);二級(jí)索引(非聚集索引)是數(shù)據(jù)與索引分開(kāi)存,葉子節(jié)點(diǎn)存主鍵值,可以有多個(gè),單獨(dú)給字段創(chuàng)建的索引大多是二級(jí)索引。
  • 當(dāng)被問(wèn)到“什么是回表查詢”時(shí),先介紹聚集索引和二級(jí)索引的概念,再解釋回表查詢是先通過(guò)二級(jí)索引找主鍵值,再用主鍵到聚集索引找整行數(shù)據(jù)的過(guò)程。實(shí)際面試中,即使面試官直接問(wèn)回表查詢,也應(yīng)先介紹索引相關(guān)概念再解釋回表查詢。

總結(jié)

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

相關(guān)文章

  • mysql中json基礎(chǔ)查詢?cè)斀?附圖文)

    mysql中json基礎(chǔ)查詢?cè)斀?附圖文)

    MySQL提供了一些函數(shù)來(lái)對(duì)JSON數(shù)據(jù)進(jìn)行操作,下面這篇文章主要給大家介紹了關(guān)于mysql中json基礎(chǔ)查詢的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • mysql中的load命令使用方法

    mysql中的load命令使用方法

    使用mysql 中的load 命令,可以將txt 文件中的內(nèi)容加載到數(shù)據(jù)庫(kù)表中
    2013-10-10
  • mysql派生表(Derived Table)簡(jiǎn)單用法實(shí)例解析

    mysql派生表(Derived Table)簡(jiǎn)單用法實(shí)例解析

    這篇文章主要介紹了mysql派生表(Derived Table)簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了mysql派生表的原理、簡(jiǎn)單使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • mysql5.x升級(jí)到mysql5.7后導(dǎo)入之前數(shù)據(jù)庫(kù)date出錯(cuò)的快速解決方法

    mysql5.x升級(jí)到mysql5.7后導(dǎo)入之前數(shù)據(jù)庫(kù)date出錯(cuò)的快速解決方法

    這篇文章主要介紹了mysql5.x升級(jí)到mysql5.7后導(dǎo)入之前數(shù)據(jù)庫(kù)date出錯(cuò)的快速解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • mysql decimal類型判斷是否為0

    mysql decimal類型判斷是否為0

    在MySQL中,DECIMAL是一種用于存儲(chǔ)精確小數(shù)的數(shù)據(jù)類型,本文主要介紹了mysql decimal類型判斷是否為0,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Oracle與MySQL的區(qū)別詳解

    Oracle與MySQL的區(qū)別詳解

    MySQL和Oracle Database都是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),本文主要介紹了MySQL和Oracle Database的區(qū)別及優(yōu)缺點(diǎn)是什么,感興趣的小伙伴歡迎閱讀
    2023-04-04
  • MySql 5.7.17 winx64的安裝配置詳細(xì)教程

    MySql 5.7.17 winx64的安裝配置詳細(xì)教程

    這篇文章主要介紹了MySql 5.7.17 winx64的安裝配置教程,初始化數(shù)據(jù)庫(kù)、配置相關(guān)信息的方法在本文中介紹的非常詳細(xì),需要的朋友參考下
    2017-01-01
  • mysql數(shù)據(jù)庫(kù)的分區(qū)表示例代碼

    mysql數(shù)據(jù)庫(kù)的分區(qū)表示例代碼

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)的分區(qū)表的相關(guān)資料,文章介紹了兩種創(chuàng)建SQL表分區(qū)的方法,分別是手動(dòng)創(chuàng)建和使用MySQL的定時(shí)事件來(lái)自動(dòng)創(chuàng)建分區(qū),手動(dòng)創(chuàng)建分區(qū)時(shí),需要在代碼中判斷分區(qū)并新增,可能會(huì)引入一些問(wèn)題,需要的朋友可以參考下
    2024-11-11
  • mysql 5.6.37(zip)下載安裝配置圖文教程

    mysql 5.6.37(zip)下載安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.6.37(zip)下載安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • JDBC 連接MySQL實(shí)例詳解

    JDBC 連接MySQL實(shí)例詳解

    這篇文章主要介紹了JDBC 連接MySQL實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09

最新評(píng)論