当前位置: 首页 > news >正文

为什么要用B+树

B+树的优势

支持范围查询:B+树在进行范围查询时,只需要从根节点一直遍历到叶子节点,因为数据都存储在叶子节点上,而且叶子节点之间有指针连接,可以很方便的进行范围查询

支持排序:B+树的叶子节点按照关键字顺序存储,可以快速支持排序操作,提供排序效率

存储更多的索引数据:因为它的非叶子节点只能存储索引关键字,不存储实际数据,因此可以存储更多的索引数据

在节点分裂和合并时,IO操作少:B+树的叶子节点的大小是固定的,而且节点的大小一般都会设置为一页的大小,这就使得节点分裂和合并时,IO操作很少,只需读取和写入一页

有利于磁盘预读:由于B+树的节点大小是固定的,因此可以很好的利用磁盘预读特性,一次行读取多个节点到内存中,可以减少IO操作次数,提高查询效率

有利于缓存:B+树的非叶子结点只存储执行子节点的指针,二步存储数据,这样可以使得缓存能搞容纳更多的索引数据,从而提供缓存的命中率,加快查询速度

 

为什么不使用B数和红黑树

B+树只有叶子节点存储数据,而非叶子节点不存储数据,可以存储更多的索引数据

节点大小固定,可以存储更多的索引数据

叶子节点之间是双向链表链接的,可以很方便的进行范围查询

叶子节点按照关键子顺序存储,更好的支持排序

所以,使用B+树实现索引有很多好处,比如我们前面提到的支持范围查询、有利于磁盘预读、有利于优化排序等等。而这些是红黑树和B树做不到的

相关文章:

  • 初识MySQL
  • chrome 307状态码
  • Elasticsearch:聊天机器人教程(二)
  • 基于Docker官方php:7.4.33-fpm镜像构建支持67个常见模组的php7.4.33镜像
  • AI对决:ChatGPT与文心一言的比较
  • 2024年【陕西省安全员A证】考试题及陕西省安全员A证模拟考试题库
  • C++(1) —— 基础语法入门
  • 【生存技能】git操作
  • 文心一言 vs. ChatGPT:哪个更胜一筹?
  • linux安装QQ(官方正版)
  • wins安装paddle框架
  • 【数据库原理】(29)数据库设计-需求分析阶段
  • 蓝桥杯准备
  • 【K8s学习】
  • Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg)
  • 如何在网络爬虫中解决CAPTCHA?使用Python进行网络爬虫
  • 学习k8s的应用(三)
  • 设计模式——模板方法模式
  • Mysql的in与exits
  • 【Web】websocket应用的是哪个协议
  • 深圳拟出让3宗居住用地,共计用地面积6.77公顷
  • 山东:小伙为救同学耽误考试属实,启用副题安排考试
  • 七部门:进一步增强资本市场对于科技创新企业的支持力度
  • 安徽省委常委、合肥市委书记费高云卸任副省长职务
  • 香港根据《维护国家安全条例》订立附属法例
  • 福州千余公共道路泊车位装“智能地锁”续:运营公司被责令改正并罚款