技能 · 编程
SQL 慢查询定位:先看执行计划再改索引
先看执行计划和扫描行数,再判断是缺索引、索引失效还是写法导致全表扫描,改完用同一语句复测耗时。
适用边界:适合单条查询变慢、列表页超时的排查;数据库整体负载高、锁等待严重的场景需要先看实例指标,只改 SQL 往往解决不了根因。
怎么做
- 先拿到完整 SQL 和参数,用执行计划看扫描方式、行数和是否回表。
- 检查过滤条件是否命中索引,有没有在字段上做函数运算或隐式转换。
- 按扫描行数最多的表补复合索引,把区分度高、常用于等值条件的列放前面。
- 改完用相同参数重跑,记录耗时和扫描行数,与改动前的数据逐项对比。
交付前检查
- 执行计划里的扫描行数明显下降,不是只快了十几毫秒。
- 新索引的列顺序与查询条件一致,能覆盖排序或分组。
- 写入频繁的表评估过索引维护成本,没有无脑加索引。
可复制提示词
你是数据库性能顾问。输入:【慢 SQL 与参数】=____;【表结构与现有索引】=____;【执行计划】=____;【数据量级】=____。请分析慢在哪一步:全表扫描、索引失效、回表过多还是排序开销,给出改写方案与索引建议,并说明预期影响。要求用执行计划行数佐证,不臆测数据分布。最后提醒加索引对写入的影响。
相关工具
同类技能
JSON 转 TypeScript 类型:先定可选字段
把接口返回的 JSON 样本转成 TypeScript 类型,先判断哪些字段真的可选,避免把所有字段都标成 any 或者全加问号。
查看 →正则编写:先写测试串再写表达式
先写一批应该匹配和不该匹配的样本串,再写正则,逐条跑通才收工,避免表达式只在作者想到的那一种格式上正确。
查看 →接口联调:用 curl 复现再改代码
先用 curl 把接口请求原样复现,排除前端参数和请求头的干扰,确认问题在服务端还是调用方,再动手改代码。
查看 →更新时间:2026-10-29 · 步骤是通用做法,平台/客户规则以实际页面为准;不承诺排名、过稿或收益。
跨库学习路径
按共同关键词匹配,不是随机推荐;从任务到提示词/教程/项目继续走。