InnoDB:在现有表中查找聚簇索引

时间:2019-01-30 17:23:27

标签: mysql innodb clustered-index

有没有一种方法可以显式确定现有InnoDB表中的聚集索引。我知道文档中列出的用于确定聚集索引的规则,但是我想知道是否存在一种在现有表中显式检查聚集索引的方法。

1 个答案:

答案 0 :(得分:1)

当你已阅读,InnoDB表始终使用PRIMARY KEY或第一非NULL UNIQUE KEY作为其聚簇索引。

如果表中没有这两个表,它将生成自己的聚集索引,并将其称为“ GEN_CLUST_INDEX”。

mysql> create table test.testy ( i int ); -- no eligible clustered index

mysql> select t.name as table_name, i.name as index_name 
  from information_schema.innodb_sys_tables t 
  join information_schema.innodb_sys_indexes i using (table_id) 
  where i.name = 'GEN_CLUST_INDEX';
+------------+-----------------+
| table_name | index_name      |
+------------+-----------------+
| test/testy | GEN_CLUST_INDEX |
+------------+-----------------+