难度
中
题目
mysql 为什么用 B+tree 作为索引
选择B+树作为MySQL索引的原因
- 多路搜索:B+树是一种多路平衡搜索树,与二叉搜索树相比,每个节点可以拥有更多的子节点,从而减少了树的高度,提高了查询效率。
- 磁盘读写优化:由于B+树的节点可以设计得很大(只要不超过磁盘页的大小),因此在读取数据时,可以一次性读取多个键值对,减少了磁盘的I/O操作。
- 范围查询高效:B+树的叶子节点通过链表相连,这使得范围查询变得非常高效。一旦找到范围的起始点,就可以沿着链表快速遍历整个范围。
- 动态平衡:B+树在插入和删除操作时会自动进行平衡调整,确保树的高度始终保持在较小的范围内,从而保证了查询性能的稳定。
- 数据存储在叶子节点:B+树的所有数据都存储在叶子节点中,非叶子节点只存储键值和指向子节点的指针。这种设计使得数据访问更加直接和高效。