3步抓出慢SQL,别等半夜被叫醒😴

我是小耶,干运营半路出家的野生DBA------写功课只是为了我踩过的坑,你们别再踩了!

你们遇到过这种情况吗?业务反馈页面转圈,登录数据库一看,CPU 100%。但不知道是哪个SQL干的。

这时候别慌,三条命令依次用。

1. 先看当前在跑的查询

sql

ini 复制代码
SHOW PROCESSLIST;

结果里找Command列为Query,Time列数值大的那些。Time表示执行了多少秒,越大越可疑。拿到Id,可以直接KILL <id>。

2. 打开慢查询日志(提前做)

MySQL设置:

text

ini 复制代码
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /var/log/mysql/slow.log

超过2秒的SQL会被记录。每天上班第一件事:看一眼昨天的慢查询日志,别等用户投诉。

bash

c 复制代码
mysqldumpslow -s t /var/log/mysql/slow.log

-s t按时间排序,最慢的排前面。

3. 抓到慢SQL后,用EXPLAIN分析

sql

ini 复制代码
EXPLAIN SELECT ...;

重点看三列:

  • type:ALL是全表扫描(危险),ref或range是走索引(还行),const是最优
  • rows:预估扫描的行数,越大越慢
  • Extra:出现Using filesort或Using temporary,说明有排序或临时表,通常需要优化

顺手记一个组合拳

sql

ini 复制代码
EXPLAIN FORMAT=JSON SELECT ...;

输出JSON格式,能看到更详细的成本估算。适合出事故后写复盘报告用。

小耶在手,SQL不愁。

你今天慢查询日志里抓到最慢的SQL跑了多少秒?

相关推荐
CoLiuRs8 小时前
电商价格是怎样算出来的
数据库·redis·缓存
小蒜学长8 小时前
基于Python的动物救助站管理系统的设计与实现(代码+数据库+LW)
数据库·后端·python·django·动物救助
weixin_404551249 小时前
自动化数据库理解:用 AI 与 LLM 自动推断表的用途与关系
数据库·人工智能·自动化
java1234_小锋9 小时前
【技术专题】Mysql8 数据库 - Mysql8 简介 & 安装以及配置
数据库·mysql
oradh9 小时前
Oracle固定执行计划的方法----SQL Profie(三)
数据库·sql·oracle
测试学习test9 小时前
SPI读取W25Q64硬件驱动(HAL库)
数据库·stm32·嵌入式硬件·算法
做运维的阿瑞10 小时前
mysql数据库分组查询:GROUP BY 与 HAVING 的执行逻辑
数据库·sql·mysql
LaughingZhu10 小时前
Product Hunt 每日热榜 | 2026-10-01
数据库·人工智能·深度学习·神经网络·搜索引擎
阳光九叶草LXGZXJ10 小时前
达梦数据库-学习-67-SSL加密认证
linux·运维·数据库·sql·学习·ssl
ha_lydms10 小时前
MaxCompute中JSON函数
大数据·数据库·阿里云·json·dataworks·maxcompute·odps