标签:sql慢查询 运行 info dex mamicode 次数 font log 全表扫描
慢日志slow-log的作用
记录运行较慢的语句,优化过程中常用的工具日志
默认未开启慢日志,需要修改配置文件my.cnf
开启
$ vim /etc/my.cnf
[mysqld]
#开启慢日志
slow_query_log=1
#慢日志记录文件位置,目录提前创建好且有权限
slow_query_log_file=/data/mysql/slow.log
#如果查询事件超过0.1秒则记录到慢日志中,默认超过10s记录
long_query_time=0.1
#记录没走索引的语句,可能是全表扫描,也会造成查询慢
log_queries_not_using_indexes
long_query_time变量默认查询时间超过10s记录到慢日志
模拟慢查询
#使用全表查询语句模拟慢查询
mysql> select num,k1 from t100w where num !=10 order by k1 limit 10000;
#使用多条不一样的语句查询测试
分析慢日志
slow.log是文本格式的,打开slow.log文件,记录的都是超过0.1s的查询语句,这些语句可能没有走索引
使用mysqldumpslow分析慢日志
#-s,sort排序,-c,count次数,-t,top前10条数据
mysqldumpslow -s c -t 10 /data/mysql/slow.log
第三方分析工具
下载percona-toolkit
#安装依赖项
$ yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-Digest-MD5
#分析二进制日志
$ pt-query-diagest /data/mysql/slow.log
Anemometer基于pt-query-digest将MySQL慢查询以网页形式展现,方便查看。
学习来自:老男孩深标DBA课程 第六章 日志管理
标签:sql慢查询 运行 info dex mamicode 次数 font log 全表扫描
原文地址:https://www.cnblogs.com/tz90/p/14538855.html