聚簇索引和非聚簇索引区别

写在前面,针对InnoDB的MySQL引擎。

聚簇索引:

  • 表数据按顺序存储,即索引顺序和表记录物理存储顺序一致
  • 聚簇索引 叶子节点存储数据行B-Tree索引
  • 在一个表中只能有一个聚簇索引,因为真实物理存储顺序只能有一种。
  • 聚簇索引是稀疏索引,数据页上一级索引存储是页指针,非行指针。

非聚簇索引:

  • 表数据存储顺序与索引顺序无关
  • 对于非聚簇索引,叶节点包含行主键值和主键值作为指向行的“指针”,通过二级索引查找,两次B-Tree查找 InnoDB自适应哈希索引能够减少这样重复工作。
  • 非聚簇索引是密集索引,在数据页的上一级索引页它为每一个数据行存储一条记录
    原文作者:蚂蚁窝大梦想
    原文地址: https://www.jianshu.com/p/643850f684db
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞