技能 · 编程

SQL 慢查询定位:先看执行计划再改索引

先看执行计划和扫描行数,再判断是缺索引、索引失效还是写法导致全表扫描,改完用同一语句复测耗时。

编程高阶后端开发数据开发
适用边界:适合单条查询变慢、列表页超时的排查;数据库整体负载高、锁等待严重的场景需要先看实例指标,只改 SQL 往往解决不了根因。

怎么做

  1. 先拿到完整 SQL 和参数,用执行计划看扫描方式、行数和是否回表。
  2. 检查过滤条件是否命中索引,有没有在字段上做函数运算或隐式转换。
  3. 按扫描行数最多的表补复合索引,把区分度高、常用于等值条件的列放前面。
  4. 改完用相同参数重跑,记录耗时和扫描行数,与改动前的数据逐项对比。

交付前检查

可复制提示词

你是数据库性能顾问。输入:【慢 SQL 与参数】=____;【表结构与现有索引】=____;【执行计划】=____;【数据量级】=____。请分析慢在哪一步:全表扫描、索引失效、回表过多还是排序开销,给出改写方案与索引建议,并说明预期影响。要求用执行计划行数佐证,不臆测数据分布。最后提醒加索引对写入的影响。

相关工具

MarkKit 工具箱

打开即用

打开 →

AI 编程一条龙

把这项技能放进完整流程

继续 →

同类技能

JSON 转 TypeScript 类型:先定可选字段

把接口返回的 JSON 样本转成 TypeScript 类型,先判断哪些字段真的可选,避免把所有字段都标成 any 或者全加问号。

查看 →

正则编写:先写测试串再写表达式

先写一批应该匹配和不该匹配的样本串,再写正则,逐条跑通才收工,避免表达式只在作者想到的那一种格式上正确。

查看 →

接口联调:用 curl 复现再改代码

先用 curl 把接口请求原样复现,排除前端参数和请求头的干扰,确认问题在服务端还是调用方,再动手改代码。

查看 →
更新时间:2026-10-29 · 步骤是通用做法,平台/客户规则以实际页面为准;不承诺排名、过稿或收益。

跨库学习路径

按共同关键词匹配,不是随机推荐;从任务到提示词/教程/项目继续走。

提示词

SQL优化:从执行计划定位慢查询

结合执行计划、数据分布与索引,定位慢查询瓶颈并给出可回退优化

共同关键词:执行计划分析

继续 →
教程

商品图压到 200KB 还不糊:先改尺寸还是先降质量

学会先缩尺寸再降质量的两段式压缩,把商品图稳定压到 200KB 以内且文字边缘仍然可读。

从技能到教程的下一步

继续 →
项目

给连锁口腔诊所写 12 篇种植牙科普推文,用于公众号留资

12 篇 800 字科普文 + 6 组医患问答 + 1 份四周发布排期

从技能到项目的下一步

继续 →