灯下哥谭 灯下哥谭
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

灯下哥谭

灯还亮着
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL8-SOP

  • 课程笔记

    • MySQL实战45讲

      • MySQL45讲学习笔记
      • MySQL基础架构
      • MySQL日志系统 (Redo Log 与 Binlog)
      • MySQL事务隔离级别的实现原理
      • MySQL索引原理与优化
      • MySQL锁机制详解
      • MySQL事务与MVCC机制
      • MySQL普通索引与唯一索引的选择
      • MySQL优化器如何选择索引
      • MySQL字符串字段索引优化
      • MySQL抖动刷脏页
      • 表空间管理与回收
      • COUNT函数详解
      • 日志索引
      • orderby工作原理
      • 随机排序实现
      • SQL性能差异函数与转换
      • 慢查询分析锁与版本
        • 1. 慢查询分析基础
          • 1.1 慢查询的概念
          • 1.2 慢查询日志格式
          • 1.3 慢查询诊断工具
        • 2. 锁问题诊断
          • 2.1 锁等待分析
          • 2.2 死锁分析
        • 3. 版本管理
          • 3.1 数据库版本查询
          • 3.2 插件版本查询
        • 4. 总结
      • 幻读与间隙锁
      • 加锁规则分析
      • 应急性能优化方法
      • 数据持久化保证
      • 主备一致性原理
      • 高可用架构与切换
      • 备库延迟分析与优化
      • 主备切换GTID
      • 读写分离实践与问题
      • 数据库健康检查
      • 锁与死锁
      • 数据误删恢复
      • Kill命令详解
      • 查询与内存使用分析
      • Join原理与选择
      • 临时表原理与应用
      • 内部临时表详解
      • Memory引擎详解
      • 自增ID详解
      • Insert加锁分析
      • 表复制方法比较
      • Grant与权限管理
      • 分区表详解
      • SQL语句中的Join问题
      • 自增ID用尽问题
  • 专题系列
  • 课程笔记
  • MySQL实战45讲
灯下哥谭
2024-07-27
目录

慢查询分析锁与版本

# 慢查询分析锁与版本

在MySQL数据库运维中,慢查询分析、锁问题诊断和版本管理是保障系统稳定性和性能的关键技能。本文将深入探讨这三个方面的核心知识和实践方法。

# 1. 慢查询分析基础

# 1.1 慢查询的概念

慢查询是指执行时间超过指定阈值的SQL语句。MySQL提供了慢查询日志功能来记录这些查询:

-- 慢查询相关配置
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'long_query_time';
SHOW VARIABLES LIKE 'slow_query_log_file';

-- 启用慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;  -- 超过2秒的查询记录
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
1
2
3
4
5
6
7
8
9

# 1.2 慢查询日志格式

-- 慢查询日志示例
# Time: 2024-01-01T10:30:45.123456Z
# User@Host: user[user] @ host [ip]
# Query_time: 5.123456  Lock_time: 0.000123 Rows_sent: 1000  Rows_examined: 500000
SET timestamp=1704065445;
SELECT * FROM large_table WHERE status = 'active' ORDER BY created_date DESC;
1
2
3
4
5
6

# 1.3 慢查询诊断工具

-- 使用pt-query-digest分析慢查询日志
-- 安装percona-toolkit后使用:
pt-query-digest /var/log/mysql/slow.log

-- 分析结果示例:
-- # Query 1: 100% 5.12s total, 5.12s mean, 1000 rows
-- # Query 2: 50% 2.56s total, 2.56s mean, 500 rows
1
2
3
4
5
6
7

# 2. 锁问题诊断

# 2.1 锁等待分析

-- 查看当前锁等待情况
SHOW ENGINE INNODB STATUS\G

-- 分析结果示例:
-- TRANSACTIONS
-- -----------
-- Trx id counter 1000000
-- Purge done for trx's n:o < 1000000
-- History list length 1000000
-- -----------
-- TRX HAS BEEN WAITING 5.12 SEC FOR THIS LOCK TO BE GRANTED:
-- -----------
-- WAITING TRANSACTIONS:
-- # Query 1: 100% 5.12s total, 5.12s mean, 1000 rows
-- # Query 2: 50% 2.56s total, 2.56s mean, 500 rows
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 2.2 死锁分析

-- 查看当前死锁情况
SHOW ENGINE INNODB STATUS\G

-- 分析结果示例:
-- TRANSACTIONS
-- -----------
-- Trx id counter 1000000
-- Purge done for trx's n:o < 1000000
-- History list length 1000000
-- -----------
-- DEADLOCK FOUND!
-- 1 deadlock detected
-- -----------
-- # Query 1: 100% 5.12s total, 5.12s mean, 1000 rows
-- # Query 2: 50% 2.56s total, 2.56s mean, 500 rows
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 3. 版本管理

# 3.1 数据库版本查询

-- 查询当前数据库版本
SELECT VERSION();

-- 示例结果:
-- 8.0.33-0ubuntu0.22.04.1
1
2
3
4
5

# 3.2 插件版本查询

-- 查询当前安装的插件版本
SHOW PLUGINS;

-- 示例结果:
-- Plugin | Version | Status | Type | Path | Source | License
-- innodb | 8.0.33 | ACTIVE | STORAGE ENGINE | NULL | NULL | NULL
1
2
3
4
5
6

# 4. 总结

-- # Query 1: 100% 5.12s total, 5.12s mean,

#学习笔记#MySQL
上次更新: 9/11/2026

← SQL性能差异函数与转换 幻读与间隙锁→

最近更新
01
DeepSeek Harness 实战 06|学习笔记:插件、工具、技能不在同一个维度上 原创
09-11
02
DeepSeek Harness 实战 05|让两个编码 Agent 共用一份长期记忆 原创
09-09
03
DeepSeek Harness 实战 04|学习笔记:从「已知限制」里读出三处设计张力 原创
09-08
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式