如何让 Mysql 注释显示在慢日志或进程列表中



我正在使用mysql慢查询日志和SHOW PROCESSLIST;来调试一些慢查询。

MySQL允许使用标准的/* ... */语法添加注释。我希望通过在查询前添加注释,可以更轻松地发现某些查询的来源。例如,很多时候在慢日志中我只看到commit所以我知道事务很慢,但我发现很难确定有关查询来源的更多详细信息。

为了测试这个技巧,我正在使用:

 SELECT /* GREP-HOOK */ SLEEP(3);

我希望"GREP-HOOK"评论会出现在SHOW [FULL] PROCESSLISTlog/slow-log文件中。然而,事实并非如此。

有人知道是否有允许评论以SHOW PROCESSLIST显示的my.cnf设置?


供参考:

> mysqld --version
mysqld  Ver 5.5.34-0ubuntu0.13.10.1-log for debian-linux-gnu on x86_64 ((Ubuntu))

(但我也想在 Amazon RDS 5.5 中尝试一下)。

我正在使用mysql命令行客户端进行测试。事实证明,命令行客户端在发送到服务器之前会去除注释(这可能是一个错误)。

当我使用 PHP 脚本进行测试时,注释保留得很好,并按照我想要的方式出现在慢日志中。


作为参考,我的 mysql 客户端版本是:

> mysql --version
mysql  Ver 14.14 Distrib 5.5.34, for debian-linux-gnu (x86_64) using readline 6.2

如果您使用的是mysql客户端,则可以使用--comments, -c选项调用它,以便它"保留发送到服务器的注释"(请参阅man mysql

最新更新