1. 程式人生 > >Mysql資料庫的儲存結構-為什麼用B樹

Mysql資料庫的儲存結構-為什麼用B樹

一:相關概念

1.1:樹的分類

1:AOV樹

特點:樹的任意節點左子樹深度和右子樹深度高度之差超過1,\

時間複雜度:插入O(1)

                 刪除O(LogN)

                 查詢O(logN)

2:紅黑樹

2.1:節點顏色是紅色或者黑色

2.2:根節點黑色

2.3:空節點為黑色

2.4:葉子節點到根節點不能有連續的兩個紅節點

2.5:從任意節點到達根節點所有簡單路徑包含相同數目的黑色及節點

插入O(1)

刪除O(1)

查詢O(logn)

3:Trie樹(字典樹)

字典樹常用搜索功能

1:一個節點的子孫具有相同的字首

2:根節點為空,

4:B樹

1:葉子節點出現在同一層,葉子節點相互關聯並且葉子節點中的樹從小到大排列

2:葉子節點才記錄資料,非葉子節點只記錄索引,一次性讀入記憶體中的需要查詢的關鍵字也就越多。相對來說IO讀寫次數也就降低了

5:B+樹

B-樹和B+樹最重要的一個區別就是B+樹只有葉節點存放資料,其餘節點用來索引,而B-樹是每個索引節點都會有Data域。

二:Mysql為什麼用B樹儲存結構

mysql的資料是放到外部儲存的,因此我們必須減低磁碟的IO次數,因此我們需要儘量降低樹的高度,樹的分叉越多越好,因此B樹正好符合我們的要求