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

MySQL之MyISAM存儲(chǔ)引擎的非聚簇索引詳解

 更新時(shí)間:2022年03月02日 16:50:54   作者:小小茶花女  
這篇文章主要為大家詳細(xì)介紹了MySQL之MyISAM存儲(chǔ)引擎的非聚簇索引,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

在InnoDB中索引即數(shù)據(jù),也就是聚簇索引的那顆B+樹的葉子節(jié)點(diǎn)中已經(jīng)包含了所有完整的用戶記錄。MyISAM的索引方案雖然也是使用樹形結(jié)構(gòu),但是卻將索引和數(shù)據(jù)分開存儲(chǔ),這種索引也叫非聚簇索引。

create table index_demo(
	c1 int,
	c2 int,
	c3 char(1),
	primary key(c1)
) ROW_FORMAT=COMPACT;

將表中的記錄按照記錄的插入順序單獨(dú)存儲(chǔ)在一個(gè)文件中,這個(gè)文件并不劃分為若干個(gè)數(shù)據(jù)頁,有多少記錄就往這個(gè)文件中塞多少個(gè)記錄,這樣一來,我們就可以通過行號(hào)快速訪問到一條記錄。在表中使用MyISAM作為存儲(chǔ)引擎時(shí),它的記錄在存儲(chǔ)空間中的表示如圖:

在這里插入圖片描述

由于在插入數(shù)據(jù)時(shí)并沒有刻意按照主鍵大小排序,所以我們不能再這些數(shù)據(jù)上使用二分法進(jìn)行查找,使用MyISAM存儲(chǔ)引擎的表會(huì)把索引信息單獨(dú)存儲(chǔ)在另外一個(gè)文件中,稱為索引文件。MyISAM會(huì)為表的主鍵單獨(dú)創(chuàng)建一個(gè)索引,只不過在索引的葉子節(jié)點(diǎn)中存儲(chǔ)的不是完整的用戶記錄,而是主鍵值和行號(hào)的組合。也就是先通過索引找到對(duì)應(yīng)的行號(hào),再通過行號(hào)去找對(duì)應(yīng)的記錄。

在這里插入圖片描述

在InnoDB存儲(chǔ)引擎中,我們只需要根據(jù)主鍵值對(duì)聚簇索引進(jìn)行一次查找就能找到對(duì)應(yīng)的記錄;在MyISAM存儲(chǔ)引擎中,需要進(jìn)行一次回表操作,這也意味著MyISAM中建立的索引相當(dāng)于全部都是二級(jí)索引。

MyISAM會(huì)直接在索引葉子節(jié)點(diǎn)處存儲(chǔ)該條記錄在數(shù)據(jù)文件中的地址偏移量。由此可以看出MyISAM的回表操作時(shí)十分快速的,因?yàn)樗悄弥刂菲屏恐苯拥轿募腥?shù)據(jù),而InnoDB是通過獲取主鍵之后再去聚簇索引中找記錄,雖然說不慢,但是也比不上直接用地址去訪問。

如果有必要,我們也可以為其他列分別建立索引或者建立聯(lián)合索引,其原理與InnoDB中索引差不多,只不過在葉子節(jié)點(diǎn)處存儲(chǔ)的是相應(yīng)的列+行號(hào),這些索引頁全部都是二級(jí)索引。

在這里插入圖片描述

可以看到對(duì)于非聚簇索引,不管是以主鍵為排序規(guī)則還是以非主鍵為排序規(guī)則,它的結(jié)構(gòu)都是相同的,即葉子節(jié)點(diǎn)存放的都是相應(yīng)的列+行號(hào)。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容! 

相關(guān)文章

  • mysql 8.0.13手動(dòng)安裝教程

    mysql 8.0.13手動(dòng)安裝教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.13手動(dòng)安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • mysql死鎖(dead lock)與鎖等待(lock wait)的出現(xiàn)解決

    mysql死鎖(dead lock)與鎖等待(lock wait)的出現(xiàn)解決

    死鎖和鎖等待是數(shù)據(jù)庫運(yùn)維中常見的問題,區(qū)別在于死鎖會(huì)自動(dòng)解除,而鎖等待需要手動(dòng)處理,本文就來介紹一下mysql死鎖(dead lock)與鎖等待(lock wait),感興趣的可以了解一下
    2024-09-09
  • MySQL對(duì)于各種鎖的概念理解

    MySQL對(duì)于各種鎖的概念理解

    今天小編就為大家分享一篇關(guān)于MySQL對(duì)于各種鎖的概念理解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 如何解決mysql無法關(guān)閉的問題

    如何解決mysql無法關(guān)閉的問題

    在本篇文章里小編給大家整理的是一篇關(guān)于解決mysql無法關(guān)閉的問題的相關(guān)內(nèi)容,需要的朋友們可以參考下。
    2020-08-08
  • 解決MySQL server has gone away錯(cuò)誤的方案

    解決MySQL server has gone away錯(cuò)誤的方案

    在本篇文章里小編給大家分享的是一篇關(guān)于MySQL server has gone away錯(cuò)誤的解決辦法,有需要的朋友們可以參考下。
    2020-02-02
  • mysql遞歸函數(shù)with?recursive的用法舉例

    mysql遞歸函數(shù)with?recursive的用法舉例

    在實(shí)際開發(fā)的過程中,我們會(huì)遇到一些數(shù)據(jù)是層級(jí)關(guān)系的、要展示數(shù)據(jù)子父級(jí)關(guān)系的時(shí)候,下面這篇文章主要給大家介紹了關(guān)于mysql遞歸函數(shù)with?recursive的用法舉例,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • MySQL實(shí)現(xiàn)字符串的拼接,截取,替換,查找位置的操作

    MySQL實(shí)現(xiàn)字符串的拼接,截取,替換,查找位置的操作

    這篇文章主要介紹了MySQL實(shí)現(xiàn)字符串的拼接,截取,替換,查找位置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Mysql查詢數(shù)據(jù)庫連接狀態(tài)以及連接信息詳解

    Mysql查詢數(shù)據(jù)庫連接狀態(tài)以及連接信息詳解

    這篇文章主要給大家介紹了關(guān)于Mysql查詢數(shù)據(jù)庫連接狀態(tài)以及連接信息的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-04-04
  • MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實(shí)現(xiàn)類型轉(zhuǎn)換的講解

    MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實(shí)現(xiàn)類型轉(zhuǎn)換的講解

    今天小編就為大家分享一篇關(guān)于MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實(shí)現(xiàn)類型轉(zhuǎn)換的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysql實(shí)現(xiàn)不用密碼登錄的實(shí)例方法

    mysql實(shí)現(xiàn)不用密碼登錄的實(shí)例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于mysql實(shí)現(xiàn)不用密碼登錄的實(shí)例方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-08-08

最新評(píng)論