innodb的主键就是聚簇索引,
myISAM 主键还是二级索引都是非聚簇索引。
1.非聚簇索引:
表和所有是分2部分储存的,通过索引的查找找需要的表的数据的地址
2. 聚簇索引:
主键的叶子下包含了数据,其他索引指向主键:
- 所以InnoDB所有表一定要有主键,如果你自己没有显式定义主键,MySQL会自动选择一个可以唯一标识的数据作为主键,如果没有unique的列,那mysql会自动创建一个隐式主键
- 还有一件事就是关于添加一个自增主键在磁盘上会,自动开辟新的连续的页,极大的方便的查询,速度增加,可维护性高,插入更快,而且有效减少储存碎片。