一条慢SQL要查半小时,AI帮我把慢查询日志变成了一份可执行的优化清单
慢查询日志:每个开发者都绕不开的“时间黑洞”
独立开发者和小团队最缺的是什么?时间。
我做过一个粗略的记录:处理一条线上慢查询,从日志里捞出来、还原SQL、猜测执行计划、查索引、改写、验证,整个流程走下来平均要30到50分钟。如果赶上表结构没人说得清、又没有DBA兜底的老项目,两个小时耗进去也很常见。而这些时间,本来应该用来写新功能。
更麻烦的是,慢查询日志本身就不是给人“读”的。它是机器格式的:时间戳、执行时长、扫描行数、原始SQL混在一起。一个稍微有点流量的服务,一天可能产出几百上千条记录,其中大量是重复模式。人工从里面筛出真正值得优化的那几条,本身就是个体力活。
这就是我的痛点:慢查询的处理成本,90%花在“读日志和定位问题”上,只有10%花在真正的优化上。
把日志翻译这一层,交给AI
后来我把流程改成了“AI先过一遍,人只做决策”。完整流程是:
第一步:脱敏并采样。 从慢查询日志里截取一段(比如最近24小时、按耗时排序的前50条),把表名、字段值做简单脱敏,避免把业务数据直接送出去。
第二步:喂给AI做聚类翻译。 不求它直接给答案,而是让它做三件事:归类相似模式、按影响面排序、对每类给出初步诊断和验证SQL。
第三步:人工复核。 我只看AI整理出来的清单,判断哪些建议合理,拿它生成的EXPLAIN语句去数据库里验证。
第四步:让AI产出可交付物。 确认后的结论,让它直接生成索引变更脚本、改写后的SQL、以及一段给团队看的说明。
关键在于第二步的提示词。经过多次迭代,我固定下来一个模板:
你是一位资深数据库优化顾问。我会提供一份MySQL慢查询日志片段。
请完成以下工作:
1. 模式聚类:把相似的SQL归为一类,统计每类的出现次数。
2. 影响排序:按(出现次数 × 平均耗时 × 扫描行数)估算优先级,从高到低列出前10类。
3. 逐类诊断:对每一类,指出可能的问题原因(缺索引、索引失效、
大偏移分页、隐式类型转换、SELECT * 等),并说明判断依据。
4. 验证方案:给出可以直接执行的 EXPLAIN / SHOW INDEX 语句,让我自行验证。
5. 优化建议:给出具体的索引DDL或SQL改写,并注明风险点
(如写放大、锁表风险、与现有索引重复)。
输出格式:每类一个小节,包含【模式】【出现次数】【疑似原因】
【验证SQL】【优化建议】【风险提示】六个字段。
注意:不要编造日志中不存在的SQL;不确定的判断要标注"待验证"。
以下是要分析的日志:
{粘贴慢查询日志片段}前后对比:时间账算给你看
我用同一份慢查询日志(约300条原始记录)做了前后对比:
| 环节 | 纯人工 | AI辅助 |
|---|---|---|
| 日志阅读与模式归类 | 60~90分钟 | 2分钟(AI完成) |
| 定位高优先级问题 | 30~40分钟 | 5分钟(人工复核清单) |
| 写验证SQL | 15~20分钟 | 3分钟(AI生成,人工过目) |
| 产出索引/改写方案 | 40~60分钟 | 10分钟(人工决策+AI成文) |
| 合计 | 约2.5~3.5小时 | 约20分钟 |
一次分析从三个小时压缩到二十分钟,效率大约是原来的十倍。更重要的是省掉的是最枯燥的部分——盯着日志找规律,这部分AI做得比人快也不容易漏。而决策权始终在我手上:加不加索引、要不要改SQL,是我拿着EXPLAIN结果做的判断,AI只负责把散乱信息翻译成结构化输入。
按一周处理两次慢查询算,一个月能省下20个小时以上,相当于凭空多出两三个工作日。API调用成本相比这个数字几乎可以忽略(具体资费以官网价格页为准),这笔账怎么算都划算。
几条实践提醒
- 一定要脱敏。 日志里的真实数据值换成占位符再发送。
- AI的判断必须验证。 “缺索引”是猜的,
EXPLAIN看到的才是真的。把AI当作一个极快但偶尔自信过头的初级DBA,让它出题你来判卷。 - 让AI输出验证语句,而不是直接输出结论。 这是模板里第4条的意义——它逼着AI给出可证伪的路径,幻觉空间小很多。
- 保留清单。 每次分析的结构化结果存档,下次可以对比“同一模式是否复发”,慢慢就形成了自己的优化知识库。
写在最后
慢查询日志一直都在,只是过去“读它”的成本太高,多数团队选择睁一只眼闭一只眼,直到某天数据库被打爆。AI把这道门槛拆掉之后,我现在的习惯是每周花二十分钟跑一遍——把救火变成了例行巡检。
如果你也想试试这套流程,推荐通过 https://api.thistoken.ai/register 接入一个稳定的大模型API,注册即可开始,把你的第一份慢查询日志丢进去,二十分钟后你会回来感谢这份提示词模板的。
---
想直接跑通示例?访问 https://api.thistoken.ai/register 注册 ThisToken.AI,获取 API Key 后即可开始。