在MySQL中,我们如何判断表的索引是否是集群的?

在MySQL中,我们如何判断表的索引是否是集群的?,mysql,clustered-index,Mysql,Clustered Index,在MySQL中,我们如何判断表的索引是否是集群的 我们可以使用show index from table name获取有关表索引的信息。但我没有发现它显示每个索引是聚集的还是非聚集的 这是为了在默认存储引擎InnoDB中,主键索引始终是聚集索引 如果没有主键,则它是非空列上的第一个唯一键索引 如果在非空列上没有主键或唯一键,则InnoDB有一个隐藏的聚集索引。在这种情况下,无法使用此聚集索引进行查询 看 如果表没有主键或合适的唯一索引,InnoDB会在包含行ID值的合成列上内部生成一个名为GEN

在MySQL中,我们如何判断表的索引是否是集群的

我们可以使用
show index from table name
获取有关表索引的信息。但我没有发现它显示每个索引是聚集的还是非聚集的


这是为了在默认存储引擎InnoDB中,主键索引始终是聚集索引

如果没有主键,则它是非空列上的第一个唯一键索引

如果在非空列上没有主键或唯一键,则InnoDB有一个隐藏的聚集索引。在这种情况下,无法使用此聚集索引进行查询

如果表没有主键或合适的唯一索引,InnoDB会在包含行ID值的合成列上内部生成一个名为GEN_CLUST_index的隐藏聚集索引。这些行按InnoDB分配给此类表中的行的ID排序。行ID是一个6字节的字段,随着新行的插入而单调增加。因此,按行ID排序的行在物理上是按插入顺序排列的

MyISAM是另一种常见的存储引擎。MyISAM不支持聚集索引。

谢谢。“隐藏聚集索引”基于哪列?谢谢。相关的