MySQL:狩猎未使用的数据库

有没有任何命令来查找一个月左右没有任何活动的数据库?

只需要SQL转储一个月,并运行差异,如果没有差异删除该数据库?

这取决于你的活动意味着什么? 您将看不到数据库的更新或对用于存储只读数据的数据库的备份所做的更改。 但是数据库访问是可能的。

您可以启用mysql 查询日志并查看所有被访问的内容,但是这会以牺牲性能为代价。

你可能可以做一些Mysql Proxy 。 你可以通过一些工作来设置它来logging所有被访问的数据库。 这可能不会对性能造成影响,然后启用所有function。

只要查看* .myd文件的文件date,就可以用于myisam数据库,前提是活动意味着有人正在写他们。

如果数据库已被修改,则Diff Dump转储只会显示给您,而不会被查询。

您可以使用慢速查询日志查看针对数据库正在运行的查询,但是如果它们包含运行查询的数据库,我现在还不能确定。

如果您不关心读取操作,可以使用MySQL复制日志来查看是否有针对这些数据库的写入活动。

一个非常方便的查询来显示DB的最后更新时间:

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(MAX(UPDATE_TIME))) as last_update FROM information_schema.tables WHERE TABLE_SCHEMA='YourDatabaseNameHere' GROUP BY TABLE_SCHEMA; 

感谢http://james-berger.blogspot.fr/2013/04/find-unused-mysql-databases.html

转储不会显示任何活动,他们会显示缺乏更新,这不是一回事。

我不知道如果MySQL不断触及它打开或没有打开的数据库。 如果没有,mtime应该告诉你。 如果是这样,你可能不得不看看日志。