1.I/O次数更少

B+树的层数比其他树(二叉搜索树等)小,那么I/O的次数就会少,因为读取一个节点后,再判断去哪个节点继续读取(一次I/0操作),说明层数越高,那么读取I/O的次数也就越多。

对于B+树来说,中间节点是存的索引没有存数据,因此同样大小的磁盘页可以容纳更多的节点元素。比B+树也更加“矮胖”,因此查询I/O次数更少。

2.查询更加稳定

每次查询都必须查询到叶子节点,而B-树(中间节点也带有数据,中间节点+叶子节点才是全部数据)只要找到了匹配元素即可,无论是中间节点还是叶子节点,因此B-树的查询性能并不稳定(最好的情况直接是根,最坏的情况在叶子节点)

3.更利于查询范围

叶子节点首尾相互连接的,只需要在链表上做遍历。

B+(中间节点只存地址,不存数据,叶子节点全存数据):

B-(中间节点也带数据,所以中间节点存的节点少,因此每个节点能够容纳的空间是固定的,InnoDB从磁盘取到内存,一个节点4KB(实则是一个页表)):

为什么数据库用B+树(3条法则需记牢)相关推荐

  1. 心理学 教你怎么去看懂人心,100条格言要记牢

    心理学 教你怎么去看懂人心,现代人越来越重视心理学,心理健康已经成为一个不可忽视的问题,越来越高的抑郁症,越来越高的自杀率充分说明了心理健康的重要性是要比身体上的健康更重要的,甚至心理健康的人身体上也 ...

  2. 【JAVA】读取excel导入数据库,形成树状结构

    最近需要导入一个excel表格,存到数据库并以树状结构读取出来 下面两张图片是需要导入的excel @Transactional(rollbackFor = Exception.class)publi ...

  3. YaHoo Web优化的14条法则

    2019独角兽企业重金招聘Python工程师标准>>> Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在. 法 ...

  4. Tom Morgan | 人生二十一条法则

    最佳的认知状态是在头脑的理性期望和身体接受的感官信号之间达成平衡. ​​前言: 我的线上导师汤姆·摩根(Tom Morgan)将过去几年撰写的邮件订阅和播客采访集结一体,发表了<21 Usefu ...

  5. 阿尔·里斯-市场营销的22条法则(22条商规)-12

    阿尔·里斯-市场营销的22条法则(22条商规) 12.商标扩展法则 商标系列的扩展,不可避免地给人以商标雷同的印象如果违背本书中 任何一条法则都值得判罪的话,那么,恐怕大多数美国公司都要在监狱中服 刑 ...

  6. 构建高性能网站的14条法则:减少HTTP请求

    1.减少HTTP请求 80%的终端用户响应时间花在了前台.其中,大部分时间都用于下载页面中的各种组件--图像.样式表.脚本.Flash等等.因此,减少组件的数量就能够减少呈现页面所需的HTTP请求数量 ...

  7. 不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)

    SQL在不同数据库中查询前几条记录的用法分类 1. orACLE Select * FROM TABLE1 Where ROWNUM<=N 2. INFORMIX Select FIRST N ...

  8. laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...

    laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...

  9. 软件工程:需求分析的20条法则

    对商业用户来说,他们后面是成百上千个供应商,前面是成千上万个消费顾客.怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进.销.调.存的商品流通工作,这些都是商业企业需要信息管 ...

  10. 需求分析的20条法则

    需求分析的20条法则 对商业用户来说,他们后面是成百上千个供应商,前面是成千上万个消费顾客.怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进.销.调.存的商品流通工作,这些 ...

最新文章

  1. uvalive 3218 Find the Border
  2. Kotlin学习笔记(五) 扩展函数 扩展属性
  3. vue 返回滚动条顶部组件_vue中回到顶部
  4. [开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
  5. [2019BUAA软件工程]第1次阅读作业
  6. python矩阵中找满足条件的元素_Python 找到列表中满足某些条件的元素方法
  7. c#-SimHash匹配相似-算法
  8. ExtJS+DWR+Spring+Hibernate开发HRMS(3)
  9. Vue深入学习4—指令和生命周期
  10. 利用计算机传播非法信息,非法侵入计算机信息系统罪如何处罚
  11. 小米6.0以上系统怎么无需root激活Xposed框架的步骤
  12. 防火墙——NAT穿越(IPSec3)
  13. fiddler 改成中文版的_fiddler中文版
  14. python爬虫案例典型:爬取大学排名(亲测有效)
  15. 微信设置字体后微信浏览器页面字体也会跟着改变的解决办法
  16. Java后端社招面试经历,不愧是大佬
  17. 【C语言】C语言实现按照考试成绩的等级输出百分制分数段
  18. 计算机网络:TCP实现聊天功能
  19. 前端css样式及选择器
  20. mysql 配置环境变量的方法及作用

热门文章

  1. Java中swing使用ImageIcon类添加图片
  2. matlab迭代法求某数平方根,MATLAB平方根法和改进平方根法求解线性方程组例题与程序要点.doc...
  3. Matplotlib_库的安装
  4. android studio发包,androidstudio使用gradle打包配置详解.pdf
  5. python判断整数是否对称_刷题系列 - Python判断是否镜像对称二叉树
  6. webdriver 等待页面加载完成_Python+selenium自动化之等待
  7. python docker sdk_使用Python Docker SDK命名镜像并创建容器
  8. 在html中frame标签的作用,HTML框架标签frameset、frame、iframe、noframes
  9. C/C++[codeup 1931]打印日期,一年的第n天是几月几号
  10. TensorFlow by Google 实战CNN Machine Learning Foundations: Ep #4 - Coding with CNN