美文网首页
InnoDB 索引

InnoDB 索引

作者: 某某程序员_ | 来源:发表于2020-02-15 09:53 被阅读0次

链表 -> 二叉查找树 -> 平衡二叉树 -> B树 -> B+树

链表:层级等于链表长度
二叉查找树:链表优化,左子节点小于当前节点,右子节点大于当前节点,可能不均匀,极端情况下和链表一样,降低读取磁盘次数。
平衡二叉树:左右子节点的高度差不大于1,当出现大于1时,自动进行平衡调整,降低读取磁盘次数
B数(平衡树):针对二叉树只能存储一个键值对的情况进行优化,每个节点可以存储多个键值对,每个节点拥有更多的子节点。此节点也称为页(磁盘块),mysql数据的存取以页为单位,降低磁盘次数。
B+树:

  1. 非叶子节点不存数据,仅存储键值。InnoDB默认大小为16KB。这样可以存储更多的键值,进一步提升效率。假设每个节点存1000个键,即1000阶。如有三层则可以存储数据量:100010001000 = 10亿。由于根节点常驻内存,因此10亿的数据里面查找某个值仅需读取2次磁盘IO。
  2. B+树索引存储在叶子节点,并且按顺序存储。因此排序查找、范围查找、分组查询更简单。而B树是数据存储在各节点,难以实现。
  3. B+树页之间是双向链表连接,叶子节点内部是单向链表连接

聚集索引:以主键作为B+树的键值,而构建的B+树索引,称为聚集索引。叶子节点存储行数据
非聚集索引:以非主键作为B+树的键值,而构建的B+树索引,称为非聚集索引。叶子节点存储主键值,查询数据需要根据主键到聚集索引里查询,称为回表查询

相关文章

  • InnoDB索引

    1. InnoDB存储引擎索引概述 InnoDB支持以下常见索引: B+树索引 全文索引 哈希索引 ​  Inno...

  • 第五章 索引与算法(上)

    5.1 InnoDB存储引擎索引概述InnoDB存储引擎支持以下几种常见索引: B+树索引 全文索引 哈希索引 I...

  • 索引与算法

    innoDb存储引擎索引概述 支持的索引类型: 1.B+树索引 2.全文索引 哈希索引 innodb支持的hash...

  • InnoDB存储引擎学习总结 第五章 索引

    常用命令 一 InnoDB存储引擎索引概述 InnoDB 支持 B+树索引、hash索引、全文索引,其中hash索...

  • Mysql的索引实践

    上次聊到Mysql的索引,特别是InnoDB索引,InnoDB所以为聚簇索引,所谓聚簇索引是说数据是存在索引中的,...

  • MySql的索引实现

    MyISAM索引实现略InnoDB索引实现InnoDB的数据文件本身就是索引文件。MyISAM索引文件和数据文件是...

  • 5-索引与算法

    1.InnoDB存储引擎索引概述 InnoDB支持以下几种常见的索引: B+树索引:传统意义上的索引,目前关系型数...

  • 《MySQL技术内幕:InnoDB存储引擎》第五章 索引与算法

    5.1 InnoDB存储引擎索引概述 InnoDB支持两种常见的索引 B+树索引 哈希索引(自适应的,会根据表的使...

  • mysql原理(七)索引与算法

    InnoDB存储引擎支持以下几种索引:1)B+树索引2)哈希索引:InnoDB会根据使用情况自动生成自适应哈希索引...

  • MySQL的全文索引Fulltext Index | 包括ngr

    内部实现 InnoDB Full-Text Index Design InnoDB的全文索引使用反向索引的设计。反...

网友评论

      本文标题:InnoDB 索引

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