一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL之MyISAM存儲引擎的非聚簇索引詳解

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

2022-03-02 22:05小小茶花女 Mysql

這篇文章主要為大家詳細介紹了MySQL之MyISAM存儲引擎的非聚簇索引,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

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

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

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

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

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

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

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

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

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

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

可以看到對于非聚簇索引,不管是以主鍵為排序規則還是以非主鍵為排序規則,它的結構都是相同的,即葉子節點存放的都是相應的列+行號。

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容! 

原文地址:https://hengheng.blog.csdn.net/article/details/123037513

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品免费国产高清在线 | 果冻传媒在线观看的 | 久久精品国产亚洲AV麻豆欧美玲 | 波多野结衣在线免费观看 | 天天天做天天天天爱天天想 | 教师系列 大桥未久在线 | 欧美日韩精品在线观看 | 天天色踪合合 | 美女被躁爽死 | chinese男性厕所撒尿合集 | 欧美第十页 | 国产精品国产香蕉在线观看网 | 娇妻被又大又粗又长又硬好爽 | 手机av影院 | 亚洲天堂精品在线 | 亚洲大片免费看 | 嫩草影院永久在线播放 | 欧美有码| 美女视频在线观看视频 | 国产日韩精品欧美一区 | 美女扒开胸罩露出奶 | 北海市副市长黄江老公 | 女主被男主做哭失禁高h | 91综合久久 | 丝袜捆绑调教视频免费区 | 翁熄性放纵交换01 | 久久热这里只有 精品 | 欧美一级在线全免费 | 免费在线观看网址大全 | 久草在线精彩免费视频 | 国产香蕉97碰碰久久人人 | 欧美精品久久久久久久影视 | 高h文恩好大好爽 | 成年性香蕉漫画在线观看 | 小兰被扒开内裤露出p | 日韩成人一区ftp在线播放 | 太深了 太粗h1v1 | 久久精品黄AA片一区二区三区 | 国产高清自拍 | 美女沟厕撒尿全过程高清图片 | 国内精品国语自产拍在线观看55 |