从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件
  • 首页
  • MYSQL
  • 14 - MYSQL 配置MySQL记录慢查询以及分析

14 - MYSQL 配置MySQL记录慢查询以及分析

发布:蔺要红08-22分类: MYSQL


配置
-- 动态修改当前配置(基于内存,重启失效) 
set global slow_query_log = ON;

# 开启慢日志查询永生生效
[mysqld]
slow_query_log= 1    # ON或者OFF也可以
slow-query-log-file=D:\mysql-5.7.27-winx64\data\mysql-slow.log
long_query_time= 3
#log_queries_not_using_indexes=on  #记录未使用索引的


# log_output:日志存储方式。了解即可,一般都是写入文件
log_output='FILE'表示将日志存入文件,默认值是'FILE'。
log_output='TABLE'表示将日志存入数据库mysql.slow_log表中

做成计划任务、按日期每天(或每周)   收集慢日志(发送到邮箱)-flush-logs会重新生成一个慢日志文件(同时会刷新bin-log日志文件)
mv /data/3306/3306_slow.log  /tmp/$(date +%F)_3306_slow.log
mysqladmin -uroot  -p111111 -S /data/3306/mysql.sock flush-logs

慢日志统计分析
-- 次数 查询时间(总的查询时间=次数*查询时间) 锁表时间(总的锁表时间) 行数(总的行数) 
Count: 2  Time=3.15s (6s)  Lock=0.00s (0s)  Rows=1.0 (2), t450_shangtua_c[t450_shangtua_c]@localhost
  SELECT SUM(amount) AS tp_sum FROM `fa_cc_trade_order` WHERE  `market_id` = 1  AND `addtime` >= 1562573085 LIMIT 1

mysqldumpslow -s at -a  mysql-slow.log  -- 按照 平均 最长时间排序
mysqldumpslow -s al -a  mysql-slow.log  -- 按照 平均 锁表时间长短排序
mysqldumpslow -s ar -a  mysql-slow.log  -- 按照 平均 查询的最多行数排序

bin/mysqldumpslow -s c -a  mysql-slow.log  -- 按照查询次数排序

mysqldumpslow -s t -a  mysql-slow.log  -- 按照总最长时间排序
mysqldumpslow -s l -a  mysql-slow.log  -- 按照总锁表时间长短排序
mysqldumpslow -s r -a  mysql-slow.log  -- 按照总查询的最多行数排序
 
其他工具推荐  https://github.com/daniel-nichter/hackmysql.com   https://www.cnblogs.com/fengchi/p/6187099.html
-- 查看当前配置信息:

mysql> show variables like '%query%';
+------------------------------+------------------------------------------+
| Variable_name                | Value                                    |
+------------------------------+------------------------------------------+
| binlog_rows_query_log_events | OFF                                      |
| ft_query_expansion_limit     | 20                                       |
| have_query_cache             | YES                                      |
| long_query_time              | 10.000000                                |
| query_alloc_block_size       | 8192                                     |
| query_cache_limit            | 1048576                                  |
| query_cache_min_res_unit     | 4096                                     |
| query_cache_size             | 1048576                                  |
| query_cache_type             | OFF                                      |
| query_cache_wlock_invalidate | OFF                                      |
| query_prealloc_size          | 8192                                     |
| slow_query_log               | OFF                                      |
| slow_query_log_file          | D:\mysql-5.7.27-winx64\data\LYH-slow.log |
+------------------------------+------------------------------------------+
13 rows in set, 1 warning (0.00 sec)


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站