首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中,我们如何判断表的索引是否是群集的?

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

Stack Overflow用户
提问于 2018-07-05 03:22:05
回答 1查看 800关注 0票数 2

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

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

这是为了If a table in MySQL has any index, must the table have a clustered index?的目的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-05 03:37:58

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

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

如果您在非空列上没有主键或唯一键,那么InnoDB有一个隐藏的聚集索引。在这种情况下,不能使查询使用此聚集索引。

请参阅https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html

如果表没有主键或合适的唯一索引,InnoDB在包含行ID值的合成列上生成名为GEN_CLUST_INDEX的隐藏聚集索引。行由InnoDB分配给这样一个表中的行的ID排序。行ID是一个6字节的字段,在插入新行时单调地增加。因此,行ID排序的行实际上是按插入顺序排列的。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51182951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档