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

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

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

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

1. 先看当前在跑的查询

sql

ini 复制代码
SHOW PROCESSLIST;

结果里找Command列为QueryTime列数值大的那些。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 ...;

重点看三列:

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

顺手记一个组合拳

sql

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

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

小耶在手,SQL不愁。

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

相关推荐
qq210846295329 分钟前
【数据库】TDengine 清理旧数据
数据库·oracle·tdengine
j_xxx404_30 分钟前
MySQL表操作硬核解析:从 CREATE TABLE 到磁盘文件、ALTER TABLE 与 DDL 风险
运维·服务器·数据库·c++·mysql·adb·ai
数据库小学妹40 分钟前
PostgreSQL迁移到国产数据库怎么做?评估、改造、上线全流程实操指南
数据库·经验分享·postgresql·dba
x***r1511 小时前
Redis Desktop Manager 0.8.8 安装教程(Windows redis-desktop-manager-0.8.8.384详细步骤)
数据库·windows·redis
initialize13061 小时前
Postgresql(Oracle兼容) 到Oracle19.9字符语义
数据库·oracle
稷下元歌2 小时前
七天学会plc 加机器视觉完整笔记:S7-1200 数据类型、存储区与寻址方式(I/Q/M/DB 详解)。
网络·数据库·笔记
潮起鲸落入海2 小时前
mysql 5.x源码安装
数据库·mysql
睡不醒男孩0308232 小时前
第一篇:多云与多模态时代的企业级数据库云管理平台(DBaaS)选型指南
数据库·clup·中启乘数
小二·2 小时前
向量数据库实战
数据库
炘爚3 小时前
Phase 5:MySQL 连接池
数据库·mysql