1.开启慢查询
查看开启状态:show variables like '%slow_query_log%';
临时配置:set global slow_query_log=1;
永久配置: [mysqld]下面增加
slow_query_log=on
slow_query_log_file=/usr/local/mysql/data/slow/mysql-slow.log
long_query_time=2
2.开启全表扫描的语句记录
查看开启状态:show VARIABLES like '%log_queries_not_using_indexes%' ;
临时配置开启:set global log_queries_not_using_indexes=1;
永久配置: [mysqld]下面增加 log_queries_not_using_indexes=on
3.慢查询日志的输出
查看配置状态:show variables like 'log_output';
4.慢查询文件的分析工具
time | 查询时间 |
user@Host | 用户账号和ip 线程id |
query_time |
执行话费时长 时间是秒 |
lock_time | 执行获取锁的时间 |
rows_sent | 活得结果的行数 |
rows_examined | 扫描的行数 |
SET timestamp | 执行的具体时间 |
SQL语句 |
4.1mysqldumpslow
-s | 排序 |
al | 执行时获取锁时长平均值 |
ar | 返回行数的平均值 |
at | 查询时长的平均值 |
c | 查询次数 |
l | 获取锁时长 |
r | 获得返回行数 |
t | 执行总时长 |
-t num | 返回几行 |
-g pattern | 后面跟正则 筛选 |
按照查询时间排序 取时间最长的前十个语句:mysqldumpslow -s t -t 10 -g select mysql-slow.log
4.2pt-query-digest