2010-03-26 79 views
3

来自INFORMATION_SCHEMA的“TABLES”表的CRETAE_TIME列对于我所有的innodb表都显示相同的CREATE_TIME。这意味着所有这些表格都是在2010-03-26 06:52:00和2010-03-26 06:53:00之间创建的,而实际上它们是在几个月前创建的。Innodb表的创建时间

Innodb表的CREATE_TABLE字段是否自动更改?

回答

3

information_schema的create_time和update_time字段对应于表的基础存储的创建/修改时间戳。

使用MyISAM,每个表都有自己的文件,因此返回该文件的创建/修改时间戳。

对于InnoDB而言,所有表的存储位于单个文件ibdata中,因此只有一个创建/修改时间戳。这一个时间戳是为所有InnoDB表返回的。

+0

今天是怎么变化的?我昨天检查了它,并没有显示昨天的日期是创建时间。 – shantanuo 2010-03-26 05:35:26

+1

您可以使用innodb引擎为每个表创建一个文件,强烈建议您这样做。 http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html innodb_file_per_table – 2010-03-26 07:02:52

+1

我不认为这是正确的。我认为CREATE_TIME基于InnoDB的FRM文件,并且InnoDB的UPDATE_TIME始终为空。所以innodb_file_per_Table不相关。 – 2010-03-26 19:31:54

4

对于InnoDB,INFORMATION_SCHEMA.TABLES中的CREATE_TIME值基于该表的FRM文件的修改时间。所以这很可能代表您上次运行ALTER TABLEOPTIMIZE TABLE