Mysql Innodb表的创建时间

Mysql Innodb表的创建时间,mysql,Mysql,“TABLES”表的CREATE_TIME列from INFORMATION_SCHEMA为所有InnoDB表显示相同的CREATE_时间。这意味着所有这些表都是在2010-03-26 06:52:00和2010-03-26 06:53:00之间创建的,而实际上它们是在几个月前创建的 InnoDB表的CREATE_TABLE字段是否自动更改?信息模式的CREATE_time和update_time字段对应于表的基础存储的创建/修改时间戳 使用MyISAM,每个表都有自己的文件,因此会返回该文件的

“TABLES”表的CREATE_TIME列from INFORMATION_SCHEMA为所有InnoDB表显示相同的CREATE_时间。这意味着所有这些表都是在2010-03-26 06:52:00和2010-03-26 06:53:00之间创建的,而实际上它们是在几个月前创建的


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

信息模式的CREATE_time和update_time字段对应于表的基础存储的创建/修改时间戳

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


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

对于InnoDB,
信息模式中的
CREATE\u TIME
值。表
基于表的FRM文件的修改时间。因此,这很可能代表您上次运行
altertable
optimizetable

我使用的MySQL 5.7.17

若你们有MyISAM表,即使你们优化了MyISAM表,它也会显示正确的创建表日期。(显示表状态,其中名称='tablename';)

如果您有innodb表,它将显示错误的创建日期,因为一旦您在内部优化innodb表,它将使用alter table,因此它将显示您创建的表日期和时间,这将是优化后的日期。(Optimize table Name;)


对于此调整,我们需要使用信息\u schema.tables获取表创建日期。

它今天是如何更改的?我昨天检查过,它没有显示昨天的日期作为创建时间。您可以使用innodb引擎为每个表创建一个文件,强烈建议您这样做。innodb_文件每个表我不认为这是准确的。我认为CREATE_TIME是基于InnoDB的FRM文件的,而UPDATE_TIME对于InnoDB总是空的。所以innodb_文件_per_表是不相关的。