performance_schema と information_schema の改善を確認するために、MySQL 5.6 開発リリース ビルドをインストールしました。そして、私はこれを見つけました-
sakila.actor テーブルには 4 つの列があります。information_schema.INNODB_SYS_TABLES column-N_COLS から確認すると、actor が 4 ではなく 7 と表示されます。各テーブルの 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
SELECT * FROM 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= The number of columns in the table と書かれています。
では、なぜすべてのテーブルに 3 つ以上の列が表示されるのでしょうか? 何か案が?