繁体   English   中英

使用引擎myisam或innodb获取MySQL中数据库最近24小时内更新的表列表

[英]Get the list of tables updated in last 24 hours of a database in MySQL with engine myisam or innodb

我试过像这样的php脚本:

$res=mysql_query("SELECT TABLE_NAME 
                  FROM  information_schema.'TABLES' 
                  WHERE  UPDATE_TIME > NOW() - INTERVAL 2 DAY 
                  AND  ABLE_SCHEMA = 'mvgis_lewiscounty'");

这是行不通的。

任何人都可以指导我如何处理这个?

没有使用适用于InnoDB和MyISAM的INFORMATION_SCHEMA的解决方案。

InnoDB表的UPDATE_TIME未更新。 InnoDB表的更新时间是主观的。 是时候有人上次UPDATE吗? 是时候更新是COMMIT ed了吗? 是将更改刷新到表空间的时间吗?

你最好使用shell命令,如:

$ find /var/lib/mysql -name '*.ibd' -mtime -1

另一种解决方案是让所有表都有一个触发器,用于更新每个表名一行的汇总表,以记录最新的INSERT / UPDATE / DELETE。

另请参见如何判断MySQL表的上次更新时间?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM