深入理解Mysql索引底層資料結構與演算法

2021-08-31 04:09:08 字數 1068 閱讀 3317

我仔細地想了想,歸納為如下幾點:

任何行業的任何人都必須勤奮努力,在機會來臨之前, 克服自己的懶惰,每天寫一點技術文章,長期積累,達到屬於自己的10000小時

溫故而知新,可以為師矣,做筆記主要為了以後回頭看,鞏固知識點;

可以隨時看當時的筆記是否有缺漏或者錯誤,可以及時補缺補漏,進行更正或補充 ;

主要我以前的筆記都在電腦本地,或者硬碟裡,我在想哪一天電腦或者硬碟損壞了,我就完蛋了!!儲存在csdn的伺服器上,免費儲存,沒錯,我是為此而來的~~

在本地電腦做筆記,每次我都新建乙個資料夾,太多了沒有乙個知識體系或者檔案分類,希望在csdn提高自己整理知識點以及檔案分類管理的能力

,我在試下markdown的"[1]"標註功能。

二叉樹: 使用二叉樹新增索引,極端情況下存1~6,它是乙個單邊,得查詢6次才找到;

紅黑樹:相比較二叉樹,有自平衡的功能, 存1~6,得4次才找到,資料量大的話資料深度很深;

hash演算法:定位式查詢,一次查詢就可以找到,但是不適用資料的排序功能;

btree:相比較紅黑樹的深度,它的資料結構是橫向擴充套件的,但是缺點是每個子節點儲存了data;

b+tree:b+tree 葉子節點才儲存data,可以增加度,度一般會超過100,因此h非常小(一般為3到5之間)

(1)預讀:磁碟一般會順序向後讀取一定長度的資料(頁的整數倍)放入記憶體

(2)區域性性原理:當乙個資料被用到時,其附近的資料也通常會馬上被使用

innodb:innodb索引檔案和資料檔案是合在一起的

(1) innodb主鍵索引: b+tree葉子節點儲存的是 索引+資料(聚集索引)

(2) innodb非主鍵索引 : b+tree葉子節點儲存的是 主鍵

**說明↩︎

深入理解Mysql索引底層資料結構與演算法

1.索引的定義 mysql官方對索引的定義為 索引 index 是幫助mysql高效獲取資料的資料結構大家使用索引有沒有想過這個問題?為什麼索引能夠幫助mysql高效獲取資料?我一一給大家道來!在給大家講之前,先更大家分享一些計算機基礎知識,有助於理解總結 通過上面的一些知識,我們知道當磁頭移動到另...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

mysql 索引 層數 mysql 索引底層

hash索引o 1 b 樹索引 o logn 為什麼紅黑樹出現了,因為防止某些情況下二叉排序樹退化為鍊錶 誕生了二叉排序平衡樹 樹的效能取決於樹的高度 為什麼db要用m路b樹,為了再降低樹的高度,減少db 磁碟io 次數,如果在記憶體中,紅黑樹效率更高 為什麼m不能無限大,因為會退化成有序陣列,無法...