gpt4 book ai didi

mysql - 为什么 INNODB_SYS_TABLES.N_COLS 为每个表显示 3+列?

转载 作者:行者123 更新时间:2023-11-29 02:32:17 25 4
gpt4 key购买 nike

我刚刚安装了 MySQL 5.6 开发版来检查 performance_schema 和 information_schema 的一些改进。而且,我发现了这个——

在 sakila.actor 表中有 4 列。从 information_schema.INNODB_SYS_TABLES column-N_COLS 检查 actor 显示 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

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

来自docs它说 N_COLS= 表中的列数。

那么为什么它为每个表显示 3+ 列?有什么想法吗?

最佳答案

我在网上找到的,这是因为InnoDB增加了三个隐藏列(DB_ROW_ID, DB_TRX_ID, DB_ROLL_PTR)

可以看源码here

关于mysql - 为什么 INNODB_SYS_TABLES.N_COLS 为每个表显示 3+列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com