参考文献

Percona Toolkit

pt-query-digest

  • 使用pt-query-digest工具可以通过慢查询日志、普通查询日志、binlog对MySQL中的查询语句进行分析,也可以通过SHOW PROCESSLIST语句输出信息,以及tcpdump 抓取的MySQL协议数据对MySQL中的查询语句进行分析.

解析慢查询日志

1
# pt-query-digest 54be3b45aab9-slow.log > slow-report.log

命令自动补全

bash情况下

  • 创建/etc/bash_completion.d/percona_toolkit或者创建~/.bash_completion.d/percona_toolkit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
_pt_commands()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}

# List of pt commands
local commands="pt-align pt-archiver pt-config-diff pt-deadlock-logger pt-duplicate-key-checker pt-fifo-split pt-find pt-fingerprint pt-heartbeat pt-index-usage pt-ioprofile pt-kill pt-log-player pt-mext pt-mongodb-summary pt-mysql-summary pt-online-schema-change pt-query-digest pt-show-grants pt-slave-find pt-slave-restart pt-stalk pt-summary pt-table-checksum pt-table-sync pt-upgrade pt-variable-advisor"

COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) )
}

complete -F _pt_commands pt
1
2
3
source /etc/bash_completion.d/percona_toolkit
# Or if you saved it in your user directory:
source ~/.bash_completion.d/percona_toolkit

zsh情况下

  • ~/.zshrc添加以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    _pt_commands() {
    local commands
    commands=(
    "pt-align" "pt-archiver" "pt-config-diff" "pt-deadlock-logger" "pt-duplicate-key-checker"
    "pt-fifo-split" "pt-find" "pt-fingerprint" "pt-heartbeat" "pt-index-usage"
    "pt-ioprofile" "pt-kill" "pt-log-player" "pt-mext" "pt-mongodb-summary"
    "pt-mysql-summary" "pt-online-schema-change" "pt-query-digest" "pt-show-grants"
    "pt-slave-find" "pt-slave-restart" "pt-stalk" "pt-summary" "pt-table-checksum"
    "pt-table-sync" "pt-upgrade" "pt-variable-advisor"
    )
    _describe 'command' commands
    }

    compdef _pt_commands pt
  • 重载配置文件

    1
    source ~/.zshrc