raspi Asked: 2009-06-02 14:58:19 +0800 CST2009-06-02 14:58:19 +0800 CST 2009-06-02 14:58:19 +0800 CST MySQL:寻找未使用的数据库 772 是否有任何命令可以查找一个月左右没有任何活动的数据库? 只需将 SQL 转储一个月并运行 diff,如果没有差异,删除该数据库? mysql maintenance 4 个回答 Voted Best Answer Zoredache 2009-06-02T15:07:12+08:002009-06-02T15:07:12+08:00 这取决于您所说的活动是什么?您不会看到数据库的更新或设计用于存储只读数据的数据库的备份更改。但是有可能是数据库被频繁访问。 您可以启用 mysql查询日志并查看访问的所有内容,但这会以性能为代价。 你可能会做一些Mysql Proxy。您可以通过一些工作来设置它来记录所有已访问的数据库。与启用所有内容的日志记录相比,这对性能的影响可能较小。 只要查看 *.myd 文件的文件日期就可以适用于 myisam 数据库,前提是 active 意味着有人也在编写它们。 Marc MAURICE 2013-10-17T03:54:35+08:002013-10-17T03:54:35+08:00 一个非常方便的查询来显示数据库的最后更新时间: 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 David Pashley 2009-06-02T15:05:52+08:002009-06-02T15:05:52+08:00 差异 SQL 转储只会显示数据库是否已被修改,而不是是否已被查询。 您可能会使用慢速查询日志来查看正在对数据库运行哪些查询,尽管我现在不能确定它们是否包含运行查询的数据库。 如果您不关心读取,您可以使用 MySQL 复制日志来查看是否有针对这些数据库的任何写入活动。 Matt Simmons 2009-06-02T15:02:44+08:002009-06-02T15:02:44+08:00 转储不会显示没有活动,它们会显示缺少更新,这不是一回事。 我不知道 mysql 是否不断地接触它已经打开的数据库。如果没有,mtime 应该告诉你。如果是这样,您可能需要查看日志。
这取决于您所说的活动是什么?您不会看到数据库的更新或设计用于存储只读数据的数据库的备份更改。但是有可能是数据库被频繁访问。
您可以启用 mysql查询日志并查看访问的所有内容,但这会以性能为代价。
你可能会做一些Mysql Proxy。您可以通过一些工作来设置它来记录所有已访问的数据库。与启用所有内容的日志记录相比,这对性能的影响可能较小。
只要查看 *.myd 文件的文件日期就可以适用于 myisam 数据库,前提是 active 意味着有人也在编写它们。
一个非常方便的查询来显示数据库的最后更新时间:
感谢http://james-berger.blogspot.fr/2013/04/find-unused-mysql-databases.html
差异 SQL 转储只会显示数据库是否已被修改,而不是是否已被查询。
您可能会使用慢速查询日志来查看正在对数据库运行哪些查询,尽管我现在不能确定它们是否包含运行查询的数据库。
如果您不关心读取,您可以使用 MySQL 复制日志来查看是否有针对这些数据库的任何写入活动。
转储不会显示没有活动,它们会显示缺少更新,这不是一回事。
我不知道 mysql 是否不断地接触它已经打开的数据库。如果没有,mtime 应该告诉你。如果是这样,您可能需要查看日志。