(重点)MySQL(入门篇26)聚簇索引和非聚簇索引的区别

innodb的主键就是聚簇索引,
myISAM 主键还是二级索引都是非聚簇索引。

1.非聚簇索引:

表和所有是分2部分储存的,通过索引的查找找需要的表的数据的地址
(重点)MySQL(入门篇26)聚簇索引和非聚簇索引的区别

2. 聚簇索引:

主键的叶子下包含了数据,其他索引指向主键:

(重点)MySQL(入门篇26)聚簇索引和非聚簇索引的区别

  • 所以InnoDB所有表一定要有主键,如果你自己没有显式定义主键,MySQL会自动选择一个可以唯一标识的数据作为主键,如果没有unique的列,那mysql会自动创建一个隐式主键
  • 还有一件事就是关于添加一个自增主键在磁盘上会,自动开辟新的连续的页,极大的方便的查询,速度增加,可维护性高,插入更快,而且有效减少储存碎片。