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

为什么要用B+树

B+树的优势

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

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

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

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

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

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

 

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

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

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

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

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

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

http://www.dtcms.com/a/7490.html

相关文章:

  • 初识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应用的是哪个协议
  • 全链路压力测试:现代软件工程中的重要性
  • Maven和MyBatis框架简单实现数据库交互
  • GPT-4技术报告的解读(二)
  • haiku实现三角乘法模块
  • 说一下mysql的锁
  • Configure Virtual Serial Port Driver串口模拟器VSPD
  • 【手把手带你玩转MyBatis】基础篇:掌握事务管理,确保数据操作的原子性与一致性
  • 【JVM调优系列】如何导出堆内存文件
  • 微信小程序支付之V2支付
  • QT上位机开发(进度条操作)