2011-08-04 25 views
2

在今年暑假實習期間,我接受了試圖清理數據庫的項目。我在這裏找到了一個解決方案,告訴我使用Information_Schema.tables的UPDATE_TIME列,但是95%的UPDATE_TIME字段都是NULL,即使在我知道我們的程序每天都會掛鉤和更新的表上。所以我想知道是否有另一種簡單的方法來嘗試查找哪些表在一段時間內未被使用。清理未使用表格的MySQL 5.0數據庫

謝謝!

回答

2

假設所有表都不是隻讀的,您可以設置觸發器,以便在刪除或更新值時,在記錄表中更新一行。然後,您可以讓它運行一段適當的時間,以查看哪些表尚未更新。

我不認爲有一種方法可以直接檢查最近使用過哪些表。如果表或MyISAM或服務器使用的是innodb_file_per_table,則可以查看數據目錄中表格的最後修改時間。我懷疑這對於不常訪問的表格不會產生任何誤報,但是你可能會得到一些錯誤的否定。