日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql索引数据结构图解_深入理解Mysql索引底层数据结构与算法

發布時間:2025/3/20 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql索引数据结构图解_深入理解Mysql索引底层数据结构与算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

索引的定義:索引(Index)是幫助MySQL高效獲取數據的數據結構。

Q1:大家使用索引有沒有想過這個問題?為什么索引能夠幫助mysql高效獲取數據?我一一給大家道來!在給大家講之前,先更大家分享一些計算機基礎知識,有助于理解

A:1:MySQL的數據都是以文件的形勢存儲在磁盤上的。

2:磁盤是由一圈一圈的磁道組成。

3:磁頭移動到不同的磁道,磁盤旋轉,這樣就可以讀到數據。

4:磁盤存取原理 1.尋道時間(速度慢,費時)  2.旋轉時間(速度較快)

5:CPU讀取數據都是從內存讀取,內存去磁盤中讀取數據,內存讀取磁盤數據大小都是以頁的大小單位。一頁 = 10kb

總結:1:當磁頭移動到另一個磁道讀取數據就是我們常說的一次I/O操作,MySQL數據是分布在不同的磁道上的,每次讀取數據都要把所有的磁道讀取一遍。

那我們進行I/O操作的次數就很多了,查詢效率就很低。

2:索引就是把索引字段數據的地址保存起來,來幫助MySQL直接定位到哪個磁道哪個扇區,這樣就減少了I/O的操作次數了,自然查詢效率就提高了。

Q2:數據結構那么多,mysql索引為什么要用B+Tree數據結構,而不是其他呢?肯定其他的數據不滿足我們的要求

常見的數據結構:

1:二叉樹

2:紅黑樹

3:hash

4: B? Tree

5: B+Tree

a.二叉樹

二叉樹是n(n>=0)節點的有限集合,該集合或者為空集(稱為空二叉樹),或者由一個根節點和二棵不想交的,分別稱為根節點的左子樹和右子樹組成。

不使用原因:一個節點只有一度,就是只有一個子節點,那讀取樹的一層就是一次I/O操作,性能也不好。

b.紅黑樹

紅黑樹即為平衡二叉樹的一種

不使用原因:一個節點有二個子節點,那就出現一層只有二個節點的情況,這種性能也不好

c.hash

不使用原因:Hash是把索引數據進行Hash算法對應一個地址,我們會發現這個性能很好啊,直接找到但是我們想想,他能滿足我們日常大部分情況么?

比如通過大于或小于篩選數據,所以說也不合適,當然MySQL也提供了Hash索引,畢竟有些場合用起來還是不錯的

d.B Tree

1.度(Degree)-節點的數據儲存個數? 2.葉節點具有相同的深度? 3.葉節點的指針為空? 4.節點中的數據key從左到右遞增排列

不使用原因:雖然解決了每一層的節點數的極端情況下,但是每一個節點存儲了索引和數據,一層存儲的數據太多也不好,畢竟內存能讀取的數據大小就10kb.

e.B+Tree

1.B+Tree(B-Tree的變種)  2.非葉子節點不存儲data,只存儲key,可以增大度  3.葉子節點不存儲指針  4.順序訪問指針,提高區間訪問性能

使用原因:設計有幾個方面

1:非葉子節點不存儲data,只存儲key,可以增大度

2:葉子節點不存儲指針

3:順序訪問指針,提高區間訪問的性能。

三:B+Tree索引的性能分析

.一般使用磁盤I/O次數評價索引結構的優劣。

..預讀:磁盤一般會順序向后讀取一定長度的數據(頁的整倍數)放入內存

..局部性原理:當一個數據被用到時,其附近的數據也通常會馬上被使用

....B+Tree節點的大小設為等于一個頁,每次新建節點直接申請一個頁的空間,這樣保證一個節點物理上也存儲在一個頁里,就實現了一個節點的載入只需要一次I/O

.....B+Tree的度d一般會超過100個,因此h非常小(一般為3到5之間)

四:不同的存儲引擎,有不同的索引實現

1:MyISAM索引實現(非聚集)   2.InnoDB索引實現(聚集)

a.MyISAM索引實現(非聚集)

---->MyISAM索引文件與數據文件是分離的

b.InnoDB索引實現(聚集)

1:數據文件本身就是索引文件  2:表數據文件本身就是按B+Tree組織的一個索引結構文件  3:聚集索引-葉節點包含了完整的數據記錄

4:為什么InnoDB表必須有主鍵,并且推薦使用整型的自增主鍵?  5:為什么非主鍵索引結構葉子節點存儲的是主鍵值?(一致性和節省存儲空間)

五:聯合索引結構

--->聯合索引的底層存儲結構長什么樣?

六:索引最左前綴原理

總結

以上是生活随笔為你收集整理的mysql索引数据结构图解_深入理解Mysql索引底层数据结构与算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲大片免费观看 | 男人操女人下面视频 | 欧美一区二区三区四区五区 | 国产亚洲精品久久久久久久 | 亚洲精品成人片在线观看精品字幕 | 久久免费视频精品 | 国产九色在线 | 国产免费不卡视频 | 欧美精品网 | 精品福利视频导航 | 国产三级精品三级在线 | 国产精品一区二区三区高潮 | 伊在线久久丫 | 激情五月婷婷在线 | 性欧美成人播放77777 | 日韩一级在线观看视频 | 欧美极品jizzhd欧美爆 | 97人人射 | 97人妻精品一区二区三区视频 | 深爱五月激情网 | 欧美丝袜脚交 | 99热自拍偷拍| 日本另类视频 | av一区二区在线观看 | 成年人免费在线观看 | 国产精品丝袜在线 | 国 产 黄 色 大 片 | 亚洲AV成人无码网站天堂久久 | 办公室大战高跟丝袜秘书经理ol | 东北少妇露脸无套对白 | 欧美乱码精品 | 国产精品国产三级国产专区53 | 成人精品在线视频 | 亚欧中文字幕 | 成 年 人 黄 色 大 片大 全 | 尤物193.com | 看特级黄色片 | 色综合久久中文字幕无码 | 制服丝袜亚洲 | 黄色大片免费网站 | 亚洲香蕉在线观看 | av成人毛片 | 中文有码在线观看 | www.欧美视频 | 99热手机在线观看 | 黄色成人av在线 | 国产又黄又硬又粗 | 成人做爰www免费看视频网站 | 迈开腿让我尝尝你的小草莓 | 狠狠躁18三区二区一区 | 污污网站在线看 | 亚洲精品一区二区三区蜜桃 | 爱爱一区| 91片看| 国产女厕一区二区三区在线视 | 欧美视频亚洲视频 | 亚洲综合日韩在线 | 欧美骚视频 | 亚洲天堂免费在线观看视频 | 免费av一区 | 免费一级特黄毛大片 | 被各种性器调教到哭vk | 精品国产色 | 入禽太深免费视频 | h狠狠躁死你h高h | 日韩a∨| 日韩3p| 午夜精品久久 | 在线观看国产亚洲 | 久久噜噜 | 麻豆网站在线免费观看 | 色婷婷激情综合 | 日韩精品在线观看网站 | 午夜精品极品粉嫩国产尤物 | 福利一区二区视频 | 奇米色影视 | 无码人妻丰满熟妇啪啪 | 中文字幕免费看 | 精品嫩模一区二区三区 | 成人在线视频在线观看 | 91麻豆影视| 国产97免费视频 | 国产三级福利 | 亚洲黄色在线看 | 精品无码人妻一区二区三区 | 国产综合精品一区二区三区 | 杨贵妃颤抖双乳呻吟求欢小说 | 亚洲色婷婷一区二区三区 | 欧美日本韩国一区 | 亚洲av综合色区无码一二三区 | 黑人巨大精品欧美黑寡妇 | 久久亚洲色图 | 夜夜嗨影院 | 黄色片免费播放 | 在线看a网站| 免费在线黄网站 | 一级美女大片 | 亚洲大片| 女人18毛片水真多18精品 |