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

MySQL之MyISAM存儲引擎的非聚簇索引詳解

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

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

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

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

在這里插入圖片描述

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

在這里插入圖片描述

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

MyISAM會直接在索引葉子節(jié)點處存儲該條記錄在數(shù)據(jù)文件中的地址偏移量。由此可以看出MyISAM的回表操作時十分快速的,因為它是拿著地址偏移量直接到文件中取數(shù)據(jù),而InnoDB是通過獲取主鍵之后再去聚簇索引中找記錄,雖然說不慢,但是也比不上直接用地址去訪問。

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

在這里插入圖片描述

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

總結(jié)

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

相關(guān)文章

  • MySQL5.6 GTID模式下同步復(fù)制報錯不能跳過的解決方法

    MySQL5.6 GTID模式下同步復(fù)制報錯不能跳過的解決方法

    搭建虛擬機centos6.0, mysql5.6.10主從復(fù)制,死活不同步,搞了一整天找到這篇文章終于OK了,特分享一下,需要的朋友可以參考下
    2020-04-04
  • 分享CentOS下MySQL最新版本5.6.13源碼安裝過程

    分享CentOS下MySQL最新版本5.6.13源碼安裝過程

    這篇文章主要介紹了CentOS下安裝MySQL最新版本5.6.13過程分享,需要的朋友可以參考下
    2014-02-02
  • MySQL優(yōu)化insert性能的方法示例

    MySQL優(yōu)化insert性能的方法示例

    對于一些數(shù)據(jù)量較大的系統(tǒng),數(shù)據(jù)庫面臨的問題除了查詢效率低下,還有就是數(shù)據(jù)入庫時間長。下面這篇文章主要給大家介紹了關(guān)于MySQL優(yōu)化insert性能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • mysql時間戳格式化函數(shù)from_unixtime使用的簡單說明

    mysql時間戳格式化函數(shù)from_unixtime使用的簡單說明

    mysql中的FROM_UNIXTIME函數(shù)可以數(shù)據(jù)庫中整型類的時間戳格式化為字符串的日期時間格式,下面這篇文章主要給大家介紹了關(guān)于mysql時間戳格式化函數(shù)from_unixtime使用的簡單說明,需要的朋友可以參考下
    2022-08-08
  • MySQL全文索引在數(shù)據(jù)庫中的應(yīng)用和優(yōu)勢(模糊查詢不用like+%)

    MySQL全文索引在數(shù)據(jù)庫中的應(yīng)用和優(yōu)勢(模糊查詢不用like+%)

    全文索引技術(shù)可以有效地從大量文本中檢索信息,適用于搜索引擎和電商平臺等場景,InnoDB從MySQL5.6開始支持全文索引,使用倒排索引實現(xiàn),全文檢索分為自然語言搜索、布爾搜索和查詢擴展搜索三種模式,全文索引提高了模糊查詢的效率,優(yōu)化了基于文本的搜索查詢
    2024-09-09
  • Mysql進行操作時鎖的具體行為示例詳解

    Mysql進行操作時鎖的具體行為示例詳解

    MySQL鎖的使用需要根據(jù)具體的應(yīng)用場景來選擇,例如,如果應(yīng)用以查詢?yōu)橹?少量更新,表鎖可能是更合適的選擇,這篇文章主要介紹了Mysql進行操作時鎖的具體行為,需要的朋友可以參考下
    2025-09-09
  • MySQL SQL語句優(yōu)化的10條建議

    MySQL SQL語句優(yōu)化的10條建議

    這篇文章主要介紹了MySQL中SQL語句優(yōu)化需要注意的10點,,特別是大型高并發(fā)網(wǎng)站,需要的朋友可以參考下
    2014-03-03
  • 關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    這篇文章主要介紹了關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • KingbaseES中的MySQL案例實戰(zhàn)講解

    KingbaseES中的MySQL案例實戰(zhàn)講解

    本文將通過KingbaseES來創(chuàng)建一個視圖,帶你體驗先進的kesonline帶來的新式學(xué)習(xí)方式,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-07-07
  • MySql索引原理與操作

    MySql索引原理與操作

    索引是有雙面性的,合理的建立索引可以提高數(shù)據(jù)庫的效率。但是如果沒有合理的構(gòu)建索引和使用索引,可能會導(dǎo)致索引失效或者影響數(shù)據(jù)庫性能,這篇文章主要介紹了MySql索引原理與操作
    2022-09-09

最新評論

屯昌县| 安阳县| 乐昌市| 金乡县| 广河县| 北流市| 循化| 明水县| 榕江县| 额济纳旗| 府谷县| 寿阳县| 怀集县| 萨嘎县| 延庆县| 淮安市| 乐安县| 化州市| 静乐县| 本溪市| 禹城市| 甘洛县| 治多县| 金塔县| 图片| 稷山县| 永善县| 璧山县| 鄂州市| 南雄市| 吉安市| 临江市| 永川市| 平远县| 星子县| 皋兰县| 贞丰县| 河源市| 和田县| 泸定县| 大同市|