InnoDB聚集索引

MySQL有没有支持聚集索引,取决于采用哪种存储引擎。

MySQL InnoDB一定会建立聚集索引,所谓聚集,指实际数据行和相关的键值保存在一块,这也决定了一个表只能有一个聚集索引,即MySQL不会一次把数据行保存在二个地方。InnoDB通常根据主键值(primary key)进行聚集,但是当一个表没有PK怎么办?InnoDB选取聚集索引参照列的顺序是:

1.如果声明了主键(primary key),则这个列会被做为聚集索引
2.如果没有声明主键,则会用一个唯一且不为空的索引列做为主键,成为此表的聚集索引
3.上面二个条件都不满足,InnoDB会自己产生一个虚拟的聚集索引。

05-02 13:54