MySQL show create表显示带有KEY的额外条目



我有一个带有组合主键(X,Y,Z)的表,当我显示create table时,它会显示

`X` int(10) unsigned NOT NULL,
`Y` int(10) unsigned NOT NULL,
`Z` int(11) NOT NULL,
`C` bigint(20) NOT NULL,
PRIMARY KEY (`X`,`Y`,`Z`),
KEY `Y` (`Y`),
KEY `Z` (`Z`),
CONSTRAINT `T_ibfk_1` FOREIGN KEY (`X`) REFERENCES `X_T` (`X`),
CONSTRAINT `T_ibfk_2` FOREIGN KEY (`Y`) REFERENCES `Y_T` (`ID`),
CONSTRAINT `T_ibfk_3` FOREIGN KEY (`Z`) REFERENCES `Z_T` (`Z`)

为什么我们得到KEY 'Y' ('Y')KEY 'Z' ('Z')?这说明了什么吗?

如果该表是MySQL Innodb表,那么您应该知道Innodb为每个外键约束创建了一个索引,该索引不能删除。因此,两个索引Y和Z,因为X在主键中得到了满足

这是索引及其索引字段的名称。可以对索引进行命名,使其更具描述性。

KEY `index name` (`fields`)

这意味着除了主键之外,还添加了另外两个索引。看起来这些键是在phpMyAdmin中创建的,因为在向单个字段添加索引时,它默认使用列名作为键名。

最新更新