簡體   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