当前位置: 首页 > news >正文

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: user[user] @ 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:影响的行数(如 INSERTUPDATEDELETE 等)。
  • Bytes_sent:返回的数据大小(以字节为单位)。
  • SET timestamp:查询执行的时间戳。
  • SQL 语句:执行的具体 SQL 查询。

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

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

   


http://www.mrgr.cn/news/92841.html

相关文章:

  • C++:类和对象(下篇)
  • 实验环境搭建集锦(docker linux ros2+强化学习环境+linux上单片机串口调试)
  • nuxt常用组件库html-validator、@nuxtjs/i18n、@nuxt/image、@unocss/nuxt使用解析
  • dj算法与分层图最短路径
  • LeetCode 解题思路 6(Hot 100)
  • 机器学习:线性回归,梯度下降,多元线性回归
  • 入门基础项目(SpringBoot+Vue)
  • AI辅助学习vue第十四章
  • 进程的状态 ─── linux第11课
  • C++22——哈希
  • Cybellum的使用场景开始之一
  • “深入浅出”系列之C++:(32)“流”的本质
  • Python从0到100(八十九):Resnet、LSTM、Shufflenet、CNN四种网络分析及对比
  • 关于流水线的理解
  • c语言实现三子棋小游戏(涉及二维数组、函数、循环、常量、动态取地址等知识点)
  • 模块七_面向对象
  • 新版的 distrobox 首先需要:设置密码
  • 深度探索推理新境界:DeepSeek-R1如何用“自学”让AI更聪明?
  • 【3天快速入门WPF】11-附加属性
  • DeepSeek行业应用实践报告-智灵动力【112页PPT全】