mysql日志分析工具-mysqldumpslow

    xiaoxiao2021-03-26  33

    日志分析工具mysqldumpslow

    在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow

    查看mysqldumpslow的帮助信息:

    [root@DB-Server ~]# mysqldumpslow --help Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]   Parse and summarize the MySQL slow query log. Options are     --verbose    verbose   --debug      debug   --help       write this text to standard output     -v           verbose   -d           debug   -s ORDER     what to sort by (al, at, ar, c, l, r, t), 'at' is default                 al: average lock time                 ar: average rows sent                 at: average query time                  c: count                  l: lock time                  r: rows sent                  t: query time    -r           reverse the sort order (largest last instead of first)   -t NUM       just show the top n queries   -a           don't abstract all numbers to N and strings to 'S'   -n NUM       abstract numbers with at least n digits within names   -g PATTERN   grep: only consider stmts that include this string   -h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),                default is '*', i.e. match all   -i NAME      name of server instance (if using mysql.server startup script)   -l           don't subtract lock time from total time

    -s, 是表示按照何种方式排序,

    c: 访问计数

    l: 锁定时间

    r: 返回记录

    t: 查询时间

    al:平均锁定时间

    ar:平均返回记录数

    at:平均查询时间

    -t, 是top n的意思,即为返回前面多少条的数据;

    -g, 后边可以写一个正则匹配模式,大小写不敏感的;

    比如

    得到返回记录集最多的10个SQL。

    mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

    得到访问次数最多的10个SQL

    mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

    得到按照时间排序的前10条里面含有左连接的查询语句。

    mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log

    另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。

    mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

    转载请注明原文地址: https://ju.6miu.com/read-661505.html

    最新回复(0)