pt-query-digest过滤查询没有密钥或坏密钥

时间:2015-11-05 20:28:16

标签: mysql percona

如何使用no key或“bad”键过滤所有查询?

pt-query-digest /var/lib/mysql/mysql-slow.log --filter '($event->{No_index_used} eq "Yes" || $event->{No_good_index_used} eq "Yes")'

此语法返回评估错误

1 个答案:

答案 0 :(得分:0)

我认为pt-index-usage是您需要的更好的工具。它的缺点是它需要针对活动的mysql实例运行,这可能会导致相当大的开销。如果你有一个可以使用的奴隶,或者你可以恢复备份并在那里运行它,那么最好使用它。

使用pt-query-digest,您只能filter by a certain set of attributes适合您的输入。要查看可用于过滤的属性列表,您可以运行以下内容:

pt-query-digest                \
slowlog                        \
--filter 'print Dumper $event' \
--no-report                    \
--sample 1

这会生成Lock_time => '0.000026'对等列表,这意味着您可以使用$event->{Lock_time}来过滤pt-query-digest结果。