面试官:为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?

作者:李平

https://www.cnblogs.com/leefreeman/p/8315844.html?from=singlemessage&isappinstalled=0

原文地址: https://mp.weixin.qq.com/s/NGjJzYGT64uiuwtsR3QKyQ

因为B树不管叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少(有些资料也称为扇出)

指针少的情况下要保存大量数据,只能增加树的高度,导致IO操作变多,查询性能变低;

B+树在叶子节点存放数据,查找速度快除了树的层数不高之外,还有,叶子节点维持了一个链表,查询时相当于顺序查找这个链表。更重要的是,查询时的对磁盘的IO操作不仅仅查询了这个数据所在块的信息,也将这个块附近的块也加进来了,这样下次查询时,就不用再次IO,变相加快了查询速度。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信