MySQL 为什么选择 B+ 树作为索引结构

MySQL 用于衡量数据查询的效率是 磁盘 I/O 次数,一般来讲索引比较大,尤其是对于关系型数据库这种数据量俺的所以能达到亿级别的,为了节省内存的使用,一般会将索引存储到磁盘中

当 B树 或者 B+ 树作为索引结构的时候,它们有一个共同的特点,每一层节点的数目比较多,但是层数很少,这样做的目的是为了减少磁盘 I/O 的次数,但是对于 B 树,它的每一个节点还包含有 data 域,这样的话就增大了节点的大小,其实就是增加了磁盘 I/O 的次数,因为磁盘 I/O 一次读取出的数据量大小是固定的,单个数据变大,每次读取出的就少,导致磁盘 I/O 的次数增多,而对于 B+ 树,除了叶子节点以外的其他节点都没有存储 data 域,每个节点小,磁盘 I/O 的次数也少,B+ 树中的 data 域是存储在叶子节点中,并且所有叶子节点都有一个链指针,这样只需要遍历叶子节点就能获取到所有的数据,能实现范围查询,在数据查询的场景中,范围查询的使用频率很高,但是 B 树不支持这种遍历操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容