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跑了多少秒?

相关推荐
AI大模型-小华3 分钟前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
foolishlee40 分钟前
Neon wal日志处理流程2
数据库
脱胎换骨-军哥1 小时前
C++ 代码规范与格式化指南
开发语言·c++·代码规范
2601_965798471 小时前
Is Hygia Good for Maid & Janitorial Sites? Technical Audit
服务器·网络·数据库
Cloud云卷云舒2 小时前
海山数据库(HaishanDB)面向工业云场景技术方案
数据库·haishandb·工业云·移动云海山数据库·天工云
KaneLogger4 小时前
一套系统,让 AI 写代码的速度变成生产力
人工智能·程序员·代码规范
严同学正在努力4 小时前
从备份到恢复:我用 30 分钟恢复了误删的核心业务表
android·java·数据库·ai
#六脉神剑5 小时前
myBuilder新版本(8月,Office文件预览、Oracle数据库支持)
数据库·oracle·开发平台·数字化工具·mybuilder
花青泽5 小时前
5-数据库-SQL注入-联合查询-AND/OR绕过-day13
数据库·sql
踏着七彩祥云的小丑5 小时前
忘记Redis是否安装过时查看
数据库·redis·缓存