- key value 類型的數據
- 紅黑樹(最優二叉樹,內存最優),時間復雜度:O(logn),調整方便;一個結點分出兩個叉
- B樹一個節點可以分出很多叉
- 數據量相等的條件下:紅黑樹的層數很高,B樹的層數就會比較低(一個節點可以分出很多叉)
- 層數比較低,查找數據的時間比較少;層數影響查詢數據的次數

數據以文件的形式存儲
- 為什么內存(用紅黑樹)不用B樹?
減少尋址次數,增加對比次數(B樹);減少對比次數,增加尋址次 數(紅黑樹);磁盤尋址時間較長,所以要減少尋址次數,用B樹。

- 數據庫底層的數據結構是B+樹,提高查詢效率。可用于區間查詢
如: select * from user where id>=10 and id<=18
- B+ 樹的優點在于:
- 由于B+樹在非葉子結點上不包含真正的數據,只當做索引使用,因此在內存相同的情況下,能夠存放更多的key。
- B+樹的葉子結點都是相連的,因此對整棵樹的遍歷只需要一次線性遍歷葉子結點即可。而且由于數據順序排列并且相連,所以便于區間查找和搜索。而B樹則需要進行每一層的遞歸遍歷。
- B樹的優點在于:
- 由于B樹的每一個節點都包含key和value,因此我們根據key查找value時,只需要找到key所在的位置,就能找到value,但B+樹只有葉子結點存儲數據,索引每一次查找,都必須一次一次,一直找到樹的最大深度處,也就是葉子結點的深度,才能找到value。