美文网首页
MySQL为什么选择B+树作为索引结构

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

作者: 小动乾坤 | 来源:发表于2024-03-03 23:36 被阅读0次

Hash索引:Hash索引底层是哈希表,哈希表是一种以key-value存储数据的结构,所以多个数据在存储关系上是完全没有任何顺序关系的,所以,对于区间查询是无法直接通过索引查询的,就需要全表扫描。所以,哈希索引只适用于等值查询的场景。而B+ 树是一种多路平衡查询树,所以他的节点是天然有序的(左子节点小于父节点、父节点小于右子节点),所以对于范围查询的时候不需要做全表扫描

二叉查找树:解决了排序的基本问题,但是由于无法保证平衡,可能退化为链表。

平衡二叉树:通过旋转解决了平衡的问题,但是旋转操作效率太低。

红黑树:通过舍弃严格的平衡和引入红黑节点,解决了 AVL旋转效率过低的问题,但是在磁盘等场景下,树仍然太高,IO次数太多。

B+树:在B树的基础上,将非叶节点改造为不存储数据纯索引节点,进一步降低了树的高度;此外将叶节点使用指针连接成链表,范围查询更加高效。

相关文章

  • MySQL数据库索引选择使用B+树

    为什么MySQL数据库索引选择使用B+树? 在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小...

  • MySQL

    索引 InnoDB MySQL5.6版本之后默认引擎是innoDB,以B+树作为索引的数据存储结构。B+数是以B树...

  • Mysql - 组合索引的B+树存储结构(最左前缀原理)

    Mysql的B+树索引在单列索引上比较好理解,结构如下: 那组合索引的B+树存储结构是什么样的呢,为什么会有最左前...

  • mysql索引

    从数据结构角度 1、B+树索引(O(log(n))):关于B+树索引,可以参考MySQL索引背后的数据结构及算法原...

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

    MySQL 用于衡量数据查询的效率是 磁盘 I/O 次数,一般来讲索引比较大,尤其是对于关系型数据库这种数据量俺...

  • 倒排索引与数据库索引

    数据库索引 mysql索引以B+树作为存储结构,B+树的主要特点是,非叶子节点不存储数据,数据只存储在叶子节点上,...

  • 聊一聊B+树

    标签: 图解B+树 | B+树代码|mysql 聚集索引|mysql B+树索引| 前言   虽然B+是B-演化过...

  • MySQL中的InnoDB索引

    为什么是B+树? 在MySQL的InnoDB存储引擎中,索引的数据结构是B+树。B+树是一棵N叉树,在总结点数不变...

  • MySQL索引及其优化

    MySQL中索引实现的底层数据结构 B+树索引 InnoDB可以使用这个也可以选择Hash InnoDB引擎中索引...

  • MySQL基础索引优化流程

    MySQL索引简介 一种优化查询的数据结构,比如Mysql中的索引是用B+树实现的,而B+树就是一种数据结构,可以...

网友评论

      本文标题:MySQL为什么选择B+树作为索引结构

      本文链接:https://www.haomeiwen.com/subject/qpylzdtx.html