gpt4 book ai didi

mysql - 如何确定上次更改 InnoDB 表的时间?

转载 作者:IT王子 更新时间:2023-10-28 23:46:16 29 4
gpt4 key购买 nike

我过去曾成功地将数据库查询的(大量)处理结果存储在 memcached 中,使用基础表的最后更新时间作为缓存键的一部分。对于 MyISAM 表,上次更改时间在 SHOW TABLE STATUS 中可用。不幸的是,对于 InnoDB 表,这通常为 NULL。

在 MySQL 4.1 中,InnoDB 在其 SHOW TABLE STATUS 行中的 ctime 通常是其实际的最后更新时间,但对于 MySQL 5.1 来说似乎并非如此。

表中有一个 DATETIME 字段,但它只显示一行被修改的时间 - 它不能显示不再存在的行的删除时间!所以,我真的不能使用 MAX(update_time)

这是真正棘手的部分。我有许多我确实从中读取的副本。我可以找出不依赖于实际应用更改的表的状态吗?

我在研究了一段时间后得出的结论是,不可能像我想要的那样便宜地获得这些信息。我可能会缓存数据,直到我期望表发生变化(它每天更新一次),并让查询缓存在可能的地方提供帮助。

最佳答案

如果您对数据库何时更改并不真正感兴趣,但想知道一个数据库表是否已更改,您应该查看 MySQL CHECKSUM TABLE

希望这对您有所帮助。

关于mysql - 如何确定上次更改 InnoDB 表的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785429/

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