我刚刚安装了 MySQL 5.6 开发版本来检查 performance_schema 和 information_schema 的一些改进。而且,我发现了这个——
在 sakila.actor 表中有 4 列。从 information_schema.INNODB_SYS_TABLES 列检查 - N_COLS 显示演员为 7 而不是 4。我可以看到对于每个表 N_COLS 显示 3+ 列。
sakila.actor-
CREATE TABLE `actor` (
`actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(256) NOT NULL,
`last_name` varchar(45) NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`actor_id`),
KEY `last_name` (`last_name`,`actor_id`)
) ENGINE=InnoDB
选择 * 从information_schema
。INNODB_SYS_TABLES
;
TABLE_ID NAME FLAG N_COLS SPACE
-------- ------------------------ ------ ------ --------
11 SYS_FOREIGN 0 7 0
12 SYS_FOREIGN_COLS 0 7 0
38 sakila/actor 1 7 0
39 sakila/actor_info 1 7 0
从文档中它说 N_COLS= 表中的列数。
那么为什么它为每个表显示 3+ 列?任何的想法?