【MySQL面试题】经典面试题之“b+树”

mysql为什么采用b+树作为索引?

为什么要使用b+树,首先我们要知道什么样的索引才是好的索引,高效的索引,我们都知道,mysql的数据是存储在磁盘的,而磁盘的io操作十分缓慢,我们通过索引去进行一次查询操作时,需要经过多次io操作,这其实是十分消耗查询时间的,也是我们不愿意看见的。

所以说,高效索引的关键就是减少io操作。

我们的b+树有着b树的特点,并且叶子节点才存储我们的数据,在非叶子节点上只会存储索引,这样一来,在相同的一个数据量下,我们的b+树能存放更多的索引,比b树更加矮胖,查询io操作更少

b+树有大量的冗余节点,在插入、删除方面效率更高。

扫表能力更强,因为我们只需要遍历叶子节点就行了,不需要遍历整个b+树就能拿到所有的数据。

在面试时建议大家这么答

Mysq|索引使用的是B+树,因为索引是用来加快查询的,而B +树通过对数据进行排序所以是可以提高查询速度的,然后通过一个节点中可以存储多个元素,从而可以使得B +树的高度不会太高,在Mysql中一 个Innodb页就是一 个B+ 树节点,一个Innodb页默认16kb, 所以一般情况下一颗三层的B+ 树可以存2000万行左右的数据,然后通过利用B+树叶子节点存储了所有数据并且进行了排序,并且叶子节点之间有指针,可以很好的支持全表扫描,范围查找等SQL语句.

想要深入底层的了解原理推荐这篇文章: 为什么 MySQL 采用 B+ 树作为索引? | 小林coding (xiaolincoding.com)

相关推荐

  1. MySQL面试经典面试b+

    2024-04-26 23:24:01       20 阅读
  2. MySQL面试经典面试B+

    2024-04-26 23:24:01       11 阅读
  3. MySQL经典面试

    2024-04-26 23:24:01       29 阅读
  4. 数据库面试Mysql

    2024-04-26 23:24:01       19 阅读
  5. SQL经典面试

    2024-04-26 23:24:01       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 23:24:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 23:24:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 23:24:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 23:24:01       20 阅读

热门阅读

  1. Nest.js项目小结2

    2024-04-26 23:24:01       14 阅读
  2. 机器学习模型保存和导出pmml文件(python代码)

    2024-04-26 23:24:01       16 阅读
  3. 贪吃蛇项目实践!(下)

    2024-04-26 23:24:01       19 阅读
  4. git 缓冲区查看与设置

    2024-04-26 23:24:01       14 阅读
  5. PostgreSQL恢复系列:pg_filedump恢复字典构造---惜分飞

    2024-04-26 23:24:01       23 阅读
  6. C++中的STL——stack类的基本使用

    2024-04-26 23:24:01       16 阅读
  7. web前端第三次笔记

    2024-04-26 23:24:01       16 阅读
  8. centos常用命令(持续更新)

    2024-04-26 23:24:01       19 阅读