• InnoDB使用B+树作为索引的数据结构
  • B+树的高度一般为2-4层,查找速度非常快
  • InnoDB索引分为聚簇索引(主索引)和辅助索引

    聚簇索引 Clustered Index

    为什么叫做聚簇索引,因为索引跟数据放在一起了

  • 根据表的主键构造一个B+树

  • 叶子节点直接存放行数据,而不是指针
  • 索引组织表中,数据也是B+树的一部分(反过来说,B+树存放的就是索引)

例如下图:
表中有两个字段:
id 数据
0 A
1 B
image.png
只有叶子节点有数据,上层只是搜索用的

辅助索引 Secondary Index

  • 每张表可以有多个辅助索引
  • 叶子节点并不包含行数据
  • 叶子节点记录了行数据的主键,用来指示数据位置

    总结

  • InnoDB索引分为聚簇索引(主索引)和辅助索引

  • 在同层B+树节点之间,为双向连表
  • 在B+树节点之内,数据条目之间为单向链表
  • 所谓索引即数据,是把数据直接记录在了主索引里