innodb存儲引擎使用B+樹實現索引的
B+樹不一樣於B樹的規則:
一、數據或者數據的指針只存放在葉子節點,非葉子節點只存儲關鍵字
二、葉子節點中關鍵字由小到大排列,左葉子末尾數據會保存右葉子開始數據的指針;
因此,B+樹的優勢:
一、因爲非葉子節點只存儲關鍵字,能夠存放的關鍵字大大增長,所以樹的層級更少
二、查詢任何一個數據都須要從葉子節點獲取數據的地址,所以每次數據的查詢次數徹底一致,所以查詢的速度更穩定
三、葉子節點自然就是有序鏈表
四、全表遍歷時,只須要遍歷葉子節點鏈表便可,不須要像B樹同樣須要遍歷每一層,性能更好
固然B樹也有B+樹所不具有的有點:
若是要查詢的某條數據離樹的根節點更近,這時查詢速度比較B+樹更快segmentfault