是時候了解了解演算法了:
b-tree、b+-tree:
1.b-tree非葉子節點包含關鍵字資訊,b+-tree不包含關鍵字資訊,僅儲存關鍵字範圍,所以b+-tree的樹高度可能相對更低,能減少磁碟io;
2.b+-tree所有的資訊存在葉子節點中
3.m階的b+-tree的孩子個數為ceil(2/m)-1<=n<=m,而b-tree個數上限為m-1,所以每個b+-tree的節點孩子數比b-tree多(待確認);
4.mysql等儲存系統使用帶順序指標的b+-tree,所以在順序讀取時,能夠方便地讀取到範圍值,這樣讀取更快;
5.b-tree和b+-tree在插入、刪除操作時,會自動**或合併,保持結構;
6.innodb二級索引儲存的是鍵值而不是指標;
7.輔助索引使用主鍵作為"指標" 而不是使用位址值作為指標的好處是,減少了當出現行移動或者資料頁**時輔助索引的維護工作,使用主鍵值當作指標會讓輔助索引占用更多的空間,換來的好處是innodb在移動行時無須更新輔助索引中的這個"指標"
2-3-4樹:
1.2-3-4樹會自頂向下**;
參考:
(五)平衡多路查詢樹(B Tree B Tree)
b tree就是我們常說的b樹,常常用於實現資料庫索引,因為它的查詢效率比較高 前面提到的2 3樹可以看作b樹的一種例項 二叉查詢樹的時間複雜度是o logn 查詢次數和比較次數較少,但是對於磁碟的io次數,最壞情況下磁碟的io次數由樹的高度決定,所以減少磁碟io次數就必須壓縮樹的高度,讓瘦高的樹盡...
二叉樹 B TREE B TREE特徵理解
二叉查詢樹查詢的時間複雜度是o logn 查詢速度最快和比較次數較少。但用於資料庫索引,當資料量過大,不可能將所有索引載入進記憶體,使用二叉樹會導致磁碟io過於頻繁,最壞的情況下磁碟io的次數由樹的高度來決定。b tree對二叉樹進行了橫向擴充套件,使樹結構更加矮胖,使得一次io能載入更多關鍵字,對...
對2 3 4樹的簡單想法
2 3樹插入時,我們首先從根節點開始,從上到下找到待插入的葉節點 然後再從葉節點開始從下到上,執行插入操作。而2 3 4樹插入時,同樣首先我們也從根節點開始,從上到下找待插入的葉節點但是與2 3樹插入不同的是,在這個尋找過程中遇到4 node,我們就把可以把4 node 成2個2 node,重新鏈結...