1. 索引b+tree樹深度的計算方法:
https://cloud.tencent.com/developer/news/373193
2. 非常好玩的B+樹,老外的想象力就是很好:
https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
3. B+樹與B樹最重要的區別有兩點:
B+樹的葉子節點之間用指針連接在一起,但是B樹沒有;
非葉子節點只存儲關鍵字,只相當於一個索引,B樹的非也節點存儲了表數據,非葉節點和葉節點數據的並集纔是表完成的數據;
由於以上兩點所帶來的影響,B+樹支持範圍查找而B樹不支持, 非葉子節點能存儲更多的索引數據從而導致更少的IO次數;
4. 聚集索引和輔助索引
都是基於B+樹; 但是聚集索引的B+Tree中的葉子節點存放的是整張表的行記錄數據,輔助索引的B+Tree葉子節點存儲的是主鍵;
InnoDB存儲引擎會遍歷輔助索引找到主鍵,然後再通過主鍵在聚集索引中找到完整的行記錄數據;