假设我们有“系统A”,它包含一个MySQL数据库,有几个表。 一段时间后,您希望通过删除任何未使用的表和/或列来优化系统A,系统A非常大且难以忽略。是否有一个工具或方法可以让您运行系统一段时间,然后进行分析,打印出表,列等的一般用法 - 这样就可以找到未使用的表和列。
我正在考虑可能挂钩进入系统,记录所有进入服务器的SQL命令,但在这种情况下,应该在数据库端而不是应用程序端执行此操作。
答案 0 :(得分:3)
General Query Log可能就是你要找的东西。
根据MySQL,使用General Query Log on:
服务器在客户端连接或断开连接时将信息写入此日志,并记录从客户端收到的每个SQL语句。
您需要使用--log[=file_name]
或-l [file_name]
选项启动MySQL才能使用它。
答案 1 :(得分:0)
假设您已经将数据库与某种类型的应用程序链接起来,那么就不应该很难找到那些未使用的列。
此外,可以使用诸如分析器(不等于MySQL等价)的程序来显示所有SQL调用。由此您将了解正在使用的所有列。