前言¶
一条慢查询拖垮接口响应时,最常见的处理方式是去搜「MySQL 慢查询优化」,拿到一堆泛泛的建议,回到自己的 EXPLAIN 输出上还是不知道怎么改。另一种做法是把 EXPLAIN 整段贴给通用对话模型,得到的分析往往停在「这张表缺索引」这一步,没有可直接执行的 CREATE INDEX,也没有改写后可上线的 SQL。
Slow SQL ER Doctor 走的是另一个路子:把慢查询当作一个「急诊病人」,诊断在前、开方在后。你把 SQL 和 EXPLAIN 输出贴进去,它给出的是今天就能跑的索引 DDL、安全的查询改写,以及一份上线前的风险清单。
这是什么¶
Slow SQL ER Doctor(坐标 @user_8ee65e73/sql-slowquery-doctor-en)是 SkillHub 上由社区开发者 user_8ee65e73 发布维护的一个开发类 Skill,当前版本 1.2.4,分类 dev-programming。它解决的问题很具体:拿到一份慢查询和它的执行计划之后,如何快速得到可执行、可上线的优化方案,而不是停留在解释层面。
官方页面上它的定位是一句 pitch:把正在杀死你 API 的慢查询当作一个急诊病人,粘贴 SQL 加上 EXPLAIN 输出,得到今天就能用的索引 DDL 和改写。这个 Skill 不需要 API key。
核心功能¶
下面是官方介绍中列出的能力,按诊断到开方的顺序排列:
- 逐行讲解
EXPLAIN/EXPLAIN ANALYZE输出,定位扫描方式、驱动表、排序与 join 的代价来源。 - 给出索引处方,附带可直接执行的
CREATE INDEX语句,并提示写放大(write-amplification)方面的注意事项。 - 查询改写:消除
SELECT *、修复隐式类型转换、用游标式分页替代深度分页。 - 锁与长事务的排查分诊。
- 慢日志批量分诊,输出 Top 5。
- 上线前的风险检查清单。
触发方式上,官方做了强制路由:当用户提到 slow query、SQL optimization、query performance、slow SQL,或直接粘贴、上传原始文本、链接、截图时,应立即调用这个 Skill,先不要追问澄清问题,也不要用通用能力替代。
安装与启用¶
官方页面给出的坐标是 @user_8ee65e73/sql-slowquery-doctor-en,来源为 community,标签显示 requires_api_key=false,即不需要额外配置 API key。
SkillHub 页面: https://www.skillhub.cn/skills/user_8ee65e73/sql-slowquery-doctor-en
官方地址: https://api.skillhub.cn/user_8ee65e73/sql-slowquery-doctor-en
坐标: @user_8ee65e73/sql-slowquery-doctor-en
需要说明的是,本次编写时官方页面无法访问,安装命令未能从资料中核实到,因此这里不给出未经验证的安装指令。这类 Skill 基于通用 SKILL.md 格式,具体的启用方式以官方页面说明为准。
典型用法¶
输入侧的用法很直接:把慢查询 SQL 和它的 EXPLAIN(或 EXPLAIN ANALYZE)输出一起提供给这个 Skill。官方建议在以下场景使用:慢查询排查、查询优化、EXPLAIN 分析、索引设计、数据库调优、API 超时、N+1 查询、深度分页,以及 MySQL 性能和 Postgres 调优。
输出侧按诊断优先、开方其次组织,依次是执行计划解读、索引 DDL 与改写建议,最后是上线前的检查清单。
中文用户可搜索「慢SQL急诊室」(sql-slowquery-doctor)在 SkillHub 上找到对应的中文版。
适用场景与注意事项¶
适合的人:已经在手上有慢查询 SQL 和 EXPLAIN 输出,希望尽快拿到可执行优化项的后端和 DBA 角色。它给出的 DDL 和改写是给决策用的,落地前仍需在测试环境验证。
几个需要注意的地方:
- 索引 DDL 会改变线上写入路径,写放大提示正是针对这一点,新建索引前要评估写密集表的影响。
- 查询改写建议(尤其是分页方案)会改变应用层 SQL,需要同步检查对应的接口和 ORM 代码。
- 它针对的是单条或批量慢查询的诊断与开方,不承担容量规划、分库分表这类更大范围的架构决策。
写在最后¶
Slow SQL ER Doctor 的价值在于把「看 EXPLAIN」和「改 SQL、加索引」之间的那一步缩短了:贴进去,拿到的是带写放大提醒的 CREATE INDEX、明确的改写方向和一份上线前检查清单。诊断在前、开方在后,适合作为慢查询排查流程里的固定一环。
官方地址:https://api.skillhub.cn/user_8ee65e73/sql-slowquery-doctor-en