MySQL慢SQL排查
2022/1/20 19:12:42
本文主要是介绍MySQL慢SQL排查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
开启
# 开启 set global slow_query_log ='ON'; # 设置慢SQL日志文件路径 set global slow_query_log_file = '/var/log/mysql-slow-query.log'; # 设置慢SQL阈值(单位:秒) set global long_query_time = 1;
查看配置情况
# 查看慢SQL相关配置 SHOW VARIABLES like '%slow%'; # 查看慢SQL阈值 SHOW VARIABLES like '%long%'; # 查看慢SQL数量 SHOW GLOBAL STATUS LIKE '%Slow_queries%'; # 查看innodb引擎死锁情况 SHOW ENGINE INNODB STATUS;
慢SQL日志解析
SELECT * FROM XXX WHERE XXX # 慢SQL语句 Time # 出现该慢SQL的时间, eg:2022-01-17T20:00:03.637443Z User@Host # 语句执行用户, eg:root[root] @ [127.0.0.1] query_time # 慢SQL执行时间, 单位:秒, eg:1.418864 lock_time # 取锁耗时, 获取访问记录锁耗时, 单位:秒, eg:0.000106 rows_sent # SQL返回了多少行,如果做了聚合就不准确了 rows_examined # 执行这条SQL扫描了多少行数据 SET timestamp # 时间戳, eg:1642489616
特殊情况
如果有数据库备份,那慢SQL语句会被变成下面这样
SELECT /*!40001 SQL_NO_CACHE */ * FROM `sys_operation_log`;
该语句不是注释,是合法可执行的SQL,意思是不经过缓存取数据,一般都是单表查询的全表数据,数据库备份时调用这样的语句来获取单表全量数据进行备份。
这篇关于MySQL慢SQL排查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-02MySQL 3主集群搭建
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解