EXPLAIN看不懂?3个字段就能破案

本文涉及的产品
PolarClaw,2核4GB
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 本文精讲EXPLAIN三核心列:type(访问类型)、rows(扫描行数)、Extra(附加信息),助你快速定位80%慢SQL问题,附真实优化案例与口诀技巧。

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

上周讲了慢查询怎么抓。抓到慢SQL之后呢?很多同学执行完 EXPLAIN SELECT ... 看着输出结果一脸懵:type、rows、Extra 都是啥?

今天只说三列。看懂这三列,80%的慢SQL你就能自己分析。

1. type:访问类型(最核心)
  • ALL​:全表扫描。数据库把整张表从头读到尾。​危险指数:爆表​。看到这个,必须优化(加索引或改写SQL)。
  • ref​:使用非唯一索引查找。比如 WHERE name = '张三' 且 name 列有普通索引。​还行,但注意扫描行数​。
  • range​:使用索引范围扫描。比如 WHERE id BETWEEN 1 AND 100WHERE name LIKE '张%'。​较优​。
  • const​:使用主键或唯一索引等值查询,最多返回一行。​完美​。

记忆口诀:​const > range > ref > ALL​。越靠左越好。

2. rows:预估扫描行数

这个数字是优化器估算的需要检查的行数(不是最终返回的行数)。数字越大,查询越慢。如果显示 rows = 1000000,说明要扫一百万行,大概率有索引没生效。

注意:rows 是估算值,不同引擎统计可能不准,但趋势很有参考价值。

3. Extra:附加信息(常见坑)
  • Using filesort​:需要额外排序,无法利用索引排序。通常出现在 ORDER BY 字段没索引。优化:给排序字段建索引。
  • Using temporary​:使用临时表。常见于 GROUP BYDISTINCT 没有索引。优化:给分组字段建索引。
  • Using index​:覆盖索引,数据直接从索引获取,不回表。​这是好事​。
  • Using where​:通过索引过滤后还有额外条件需要回表检查。一般正常。
  • Using index condition​:MySQL 5.6+ 的索引下推优化,​不错​。
实战案例

某条慢查询:

EXPLAIN SELECT * FROM orders WHERE DATE(order_date) = '2026-05-01';

结果:type=ALL, rows=5000000, Extra=Using where

问题:对索引列用了函数 DATE(),导致索引失效,全表扫描500万行。

改写:

EXPLAIN SELECT * FROM orders WHERE order_date >= '2026-05-01' AND order_date < '2026-05-02';

结果:type=range, rows=523, Extra=Using index condition

速度快了几千倍。

小技巧
  • FORMAT=JSON 可看更详细成本:EXPLAIN FORMAT=JSON SELECT ...
  • 生产环境谨慎使用 EXPLAIN,它不会真的执行查询,安全。

小结​:遇到慢SQL,先看 type 是不是 ALL;再看 rows 是不是很大;最后看 Extra 有没有 Using filesortUsing temporary。三列搞定。

小耶在手,SQL不愁。

你今天 EXPLAIN 了没?晒出你的 type 列,我帮你把把脉。

相关文章
|
7天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23404 6
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
16天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
5792 25
|
12天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
4365 13
|
11天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
3613 11
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
28天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
22104 64
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)