Mysql選用B+Tree結構(筆記整理)

B+Tree和B-Tree的區別?

  1. B+樹幾點關鍵字搜索採用閉合區間
  2. B+樹非葉節點不保存數據相關信息,只保存關鍵字和子節點的引用
  3. B+樹關鍵字對應數據保存在葉子節點中
  4. B+樹節點是順序排列並且相鄰節點具有順序引用的關係

爲什麼mysql不使用平衡二叉樹?

數據處的深度決定着他的IO操作次數,IO操作耗時大
每一個磁盤塊保存的數據量太小
B+Tree和B-Tree的區別?
B+樹幾點關鍵字搜索採用閉合區間
B+樹非葉節點不保存數據相關信息,只保存關鍵字和子節點的引用
B+樹關鍵字對應數據保存在葉子節點中
B+樹節點是順序排列並且相鄰節點具有順序引用的關係
B+樹是B-樹的變種,他擁有B-樹的優勢
B+樹掃庫掃表能力強,磁盤讀寫能力更強
排序能力更強,查詢效率更加穩定

爲什麼選用B+Tree?
穩定(B-Tree尋子不穩定,可能1次1層,也可能2次100層才能檢索到,效率是不穩定)

B+Tree 每次都查到最後一層,所以每次查的效率是穩定的)

爲什麼不用紅黑樹呢?

要求是從根節點到葉子節點的最長路徑不大於最短路徑的2倍
這個要求遠遠不夠,IO次數還是太多了,所以不適用與數據庫的索引
B+Tree三層,三次IO就能達到2千多萬條數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章