pt-query-digest过滤器查询没有密钥或错误密钥

pt-query-digest过滤器查询没有密钥或错误密钥

问题描述:

如何使用无密钥或“坏”密钥过滤所有查询?pt-query-digest过滤器查询没有密钥或错误密钥

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

此语法返回计算错误

我认为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-查询摘要结果。