MySQL:搜寻未使用的数据库

MySQL:搜寻未使用的数据库

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

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

答案1

这取决于您所说的活动是什么意思?对于设计用于存储只读数据的数据库,您不会看到数据库的更新或备份的更改。但数据库可能会被频繁访问。

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

你也许可以做点什么Mysql 代理。您可以稍微花点功夫设置它来记录所有已访问的数据库。这可能比启用记录所有内容对性能的影响更小。

只需查看 *.myd 文件的文件日期即可适用于 myisam 数据库,前提是“活动”意味着有人正在对它们进行写入。

答案2

一个非常方便的查询,显示数据库的最后更新时间:

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

答案3

不同的 SQL 转储只会显示数据库是否已被修改,而不会显示数据库是否已被查询。

您可以使用慢查询日志来查看针对数据库运行的查询,尽管我现在不能确定它们是否包含针对该查询运行的数据库。

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

答案4

转储不会显示没有活动,它们会显示缺少更新,这是不一样的事情。

我不知道 mysql 是否持续接触它已打开的数据库。如果没有,mtime 应该会告诉你。如果有,你可能需要查看日志。

相关内容