二叉树(二叉查找树)
平衡二叉树(B树就是B-树)(解决了二叉查找树的极端情况)
Q:具体是怎么解决的呢?
A:
- 树左右两边层数相差不大于1
- 一旦符合条件1的时候,就进行左旋/右旋
Q:为什么MySQL要用B+树?
A:
- B+树减少了IO次数
- 所有数据放在叶子节点,查询更稳定
- 叶子节点指向下一个叶子节点,范围查询更好
虽然平衡二叉树的查找效率很高,但是IO的次数就是树的高度(因为无法将整个索引加载道内存中),IO才是瓶颈
B树的结构
B+树的结构
//TODO
B+树的特点
- 非叶子节点存储索引,叶子节点存储数据(能存储更多的索引