假设我们有一个由MySQL数据库组成的“系统A”,其中有几个表。一段时间后,您希望通过删除任何未使用的表和/或列来优化系统A,系统A非常大,很难忽略。有没有工具或方法可以让你运行系统一段时间,然后做一个分析,打印出表,列等的一般用途-这将使找到未使用的表和列成为可能。
我正在考虑挂接到系统中,记录所有进入服务器的SQL命令,但在这种情况下,我更愿意在数据库端而不是应用程序端这样做。
发布于 2009-09-08 02:54:42
General Query Log可能就是你要找的东西。
根据MySQL的说法,在常规查询日志打开时:
SQL服务器在客户端连接或断开连接时将信息写入此日志,并记录从客户端接收的每个
语句。
您需要使用--log[=file_name]或-l [file_name]选项启动MySQL才能使用它。
发布于 2009-09-08 02:44:09
假设您已经将数据库与某种类型的应用程序链接在一起,那么应该不难找到正在使用的列而不是未使用的列。
此外,可以使用诸如profiler (不确定MySQL等价性)之类的程序来显示所有的MySQL调用。由此,您将知道正在使用的所有列。
https://stackoverflow.com/questions/1391712
复制相似问题