MySQL中的聚集索引(Clustered Index)是一种特殊类型的索引,它决定了表中数据的物理存储顺序。聚集索引的每个表只能有一个,因为数据行只能按照一种顺序存储。当创建聚集索引时,表中的数据行会按照索引键的顺序进行物理排序和存储。
MySQL中的聚集索引主要有以下几种类型:
聚集索引适用于以下场景:
问题:为什么我的表没有聚集索引?
原因:MySQL中的InnoDB存储引擎默认会为主键创建一个聚集索引。如果你的表没有主键,或者主键被删除,那么InnoDB会尝试使用一个唯一索引作为聚集索引。如果没有这样的唯一索引,InnoDB会生成一个隐藏的聚集索引。
解决方法:
示例代码:
-- 创建表并添加主键
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);
-- 查看表的聚集索引
SHOW INDEX FROM example;
参考链接: