【问题标题】:How to get Mysql comments to show up in the slow-log or processlist?如何让 Mysql 注释显示在慢日志或进程列表中?
【发布时间】:2013-10-31 11:56:08
【问题描述】:

我正在使用 mysql slow query logSHOW PROCESSLIST; 来调试一些慢查询。

MySQL 允许使用标准 /* ... */ syntax 添加 cmets。我希望通过在我的查询前面添加评论,可以更容易地发现我们的一些查询的来源。例如,很多时候在慢日志中我只看到commit,所以我知道事务很慢,但我发现很难确定有关查询来源的更多详细信息。

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

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

我希望“GREP-HOOK”注释会出现在SHOW [FULL] PROCESSLISTlog/slow-log 文件中。然而事实并非如此。

任何人都知道是否有my.cnf 设置允许 cmets 在SHOW PROCESSLIST 中显示?


供参考:

> 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 comments profiling mysql-slow-query-log


    【解决方案1】:

    我正在使用 mysql 命令行客户端进行测试。事实证明,命令行客户端在发送到服务器之前会剥离 cmets(could be a bug)。

    当我使用 PHP 脚本进行测试时,评论保留得很好,并按照我的意愿出现在慢日志中。


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

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

    【讨论】:

      【解决方案2】:

      如果您使用的是 mysql 客户端,您可以使用 --comments, -c 选项调用它,以便“保留发送到服务器的 cmets”(参见 man mysql

      【讨论】:

      • 感谢您将我从数百行 man mysql 中拯救出来...
      猜你喜欢
      • 2013-01-19
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 2016-06-06
      • 2011-12-02
      相关资源
      最近更新 更多