MySQL慢查询分析与处理

什么是慢日志

慢日志是MySQL用来记录数据库中执行较慢的SQL语句的日志,当数据库遇到性能问题时,慢日志可以帮助我们分析数据库中执行较慢的SQL。

如何打开数据库慢日志功能

MySQL默认是关闭慢日志功能的,可以从数据库中或者从配置文件中进行修改。

在数据库中临时开启:

set global slow_query_log = 'on'; //开启慢查询日志

set global slow_query_log_file = 'path/mysql_xx_slow.log';//设置慢日志路径

set global long_query_time = 2;//设置慢查询阈值,单位秒,超过阈值的SQL会记录到慢日志

配置文件(my.cnf)中永久开启:

slow_query_log = 1

slow_query_log_file = path/mysql_xx_slow.log

long_query_time = 2

log_queries_not_using_indexes = 1 -- 可选项:记录那些没有使用索引的查询

慢日志内容格式

Time: 2023-10-12T09:14:23.563457Z

User@Host: useruser @ localhost \[\]

Query_time: 12.345678 Lock_time: 0.000123 Rows_sent: 10 Rows_examined: 1000

Rows_affected: 0 Bytes_sent: 512

SET timestamp=1634038463;

SELECT * FROM large_table WHERE column = 'value';

  • Time:查询的执行时间。
  • User@Host:发起查询的用户和主机。
  • Query_time:查询执行的时间,单位为秒。
  • Lock_time:查询执行期间的锁定时间。
  • Rows_sent:查询返回的行数。
  • Rows_examined:查询过程中检查的行数。
  • Rows_affected :影响的行数(如 INSERT、UPDATE、DELETE 等)。
  • Bytes_sent:返回的数据大小(以字节为单位)。
  • SET timestamp:查询执行的时间戳。
  • SQL 语句:执行的具体 SQL 查询。

如何快速分析很大的慢日志

使用PerconaToolkit中的pt-query-digest工具可以帮助我们快速分析MySQL的慢查询日志。

相关推荐
阳光九叶草LXGZXJ6 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
字节渡客6 小时前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
OnlineProxy9 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
辻弋20110 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
可乐鸡翅yeah_11 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
石头麻辣鱼11 小时前
Bamboo 调度系统 OceanBase 适配实战:存储过程迁移踩过的三个大坑
数据库
龙亘川12 小时前
数智驱动民政升级 精准守护民生保障
大数据·数据库·人工智能
念何架构之路12 小时前
zap扩展生态与总结
java·前端·数据库
晚安日记wanna13 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
第七页独白13 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库