• 技术文章 >数据库 >MySQL

    mysql B+Tree索引是什么

    小妮浅浅小妮浅浅2021-06-22 09:32:05原创3386

    概念

    1、B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构。在B+Tree中,所有数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上,而非叶子节点上只存储key值信息,这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度。

    与B-Tree区别

    B+的搜索与B-树也基本相同,区别是B+树只有达到叶子结点才命中(B-树可以在非叶子结点命中)

    (1)所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;( 只有根节点存储关键字最后树的末梢才有值 )

    (2)非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层。(非根节点,存储的其实是指向根节点的索引 )

    (3) 因为前两点,所以 不可能在非叶子结点存数据。 (区别B-的第三条)

    (4)根节点横向也有链指针(方便快速顺藤摸瓜嘛,没这个指针,就算下一个取的值是挨着的邻居,也得跑个圈才能拿到)

    使用说明

    2、B+Tree索引是大多数MySQL存储引擎的默认索引类型。

    因为不再需要进行全表扫描,只需要对树进行搜索即可,所以查找速度快很多。

    因为 B+ Tree 的有序性,所以除了用于查找,还可以用于排序和分组。

    可以指定多个列作为索引列,多个索引列共同组成键。

    适用于全键值、键值范围和键前缀查找,其中键前缀查找只适用于最左前缀查找。如果不是按照索引列的顺序进行查找,则无法使用索引。

    以上就是mysql B+Tree索引的介绍,希望对大家有所帮助。更多mysql学习指路:MySQL

    推荐操作系统:windows7系统、mysql5.8、DELL G3电脑

    专题推荐:mysql btree索引
    上一篇:mysql中B+Tree和B-Tree的区别 下一篇:mysql哈希索引是什么

    相关文章推荐

    • python连接mysql数据库步骤• mysql如何创建表• python中PyMySQL有什么用• php安装mysql扩展模块• MySQL的五种索引类型极其特点• mysql教程 查看数据库创建信息• mysql中有几种粒度锁?• mysql锁的两种不同状态

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网