在MySQL中,从文件/var/log/mysql/mysql.log
获取日志,我们可以通过使用tail
命令拖尾此文件来监控实时查询。
问题是所有查询都在这里记录,有没有办法在触发特定表的查询时从尾部进行日志记录或过滤
提前致谢
答案 0 :(得分:1)
我使用pt-query-digest。
根据表名创建过滤器很棘手,并且取决于一些未记录的功能。
pt-query-digest --filter '$qr->distill($event->{arg}) =~ /\bMyTable\b/' \
/var/log/mysql/mysql-slow.log
注意我解析慢查询日志,而不是一般查询日志。我更喜欢使用慢查询日志,因为它中包含更多信息。
在生产服务器上运行此操作时也要小心。我发现脚本占用了大量资源,如果您的日志太大,它可能会干扰您的服务器负载。我建议您将日志记录到其他主机,其中高负载不会干扰您的生产应用。