为什么数据库慢查询诊断这件事,很多团队宁愿熬夜人肉排查,也不肯把日志丢给云端AI?答案藏在慢日志本身:表名、查询模式、业务逻辑,全在里面。把生产查询模式粘贴进一个聊天窗口,对任何有基本安全策略的团队来说都过不了关。
![]()
有人干脆换了个思路:模型不放在别人的服务器上,放在自己已经有的机器里。这就是 AI DBA on Bare Metal,一个给 MySQL DBA 用的命令行工具。喂给它一份慢查询日志,或者一个 DBCheck 巡检包,跑在本地硬件上的开放权重模型会返回三样东西:
- 诊断——用一到三句话说清根因,不绕弯子;
- 可执行 SQL——真正能跑的 ALTER TABLE、重写后的查询,或者参数调整;
- 风险提示——一行字,说明盲目执行会坏在哪。
作者的身份很直接:他自己就是 DBA。做这个工具的理由也很直接——凌晨两点,一条慢查询正在拖垮生产,他需要一个真正懂 MySQL 的第二双眼睛。这就是他当时希望已经存在的东西。
演示跑起来是这样。执行 python aidba.py --slowlog sample-slow.log,解析出三条慢查询后逐条给出结论。第一条耗时 12.35 秒,诊断是 orders.created_at 上缺索引,导致全表扫描,随后的 ORDER BY o.total 又对日期范围内的每一行触发 filesort;修复方案是建一个包含 created_at 和 total 的复合索引,风险提示则提醒老版本 MySQL 建索引会短暂锁表,先在从库上验证。
第二条 8.21 秒,问题出在 IN (SELECT ...) 这种写法,子查询对 order_items 的每一行都执行一次,是典型的关联子查询反模式;修复方案改成 JOIN 写法,风险提示要求确认相关字段上的索引存在。第三条 5.68 秒,查询同时过滤 action 和 created_at,但最多只有一个列有索引,于是整段范围都要扫;修复方案是建复合索引,代价是写入开销和存储增加,对读多的表可以忽略。
整个流程拆开看并不复杂:解析慢日志,挑出最慢的若干条查询,按 DBA 的结构化提示词组装请求,POST 给本地 vLLM,打印诊断结果。不到 100 行 Python,零第三方依赖。仓库里就是一个单文件,只用标准库里的 urllib、re、json、argparse,没有 openai 包,也没有任何框架。
它对接任何兼容 OpenAI 接口的端点。作者自己跑的是 vLLM 服务的 DeepSeek-V4,两台机器、4×200G RoCE 互联,速度超过 120 tokens/s;换成 Ollama、llama.cpp server,或者你机器上现成的任何本地模型都行。
技术栈刻意选得无聊。模型是开放权重的 DeepSeek-V4,通过 vLLM 的兼容端点提供服务;客户端约 100 行 Python,只发一个带 JSON 的 HTTP POST;提示词工程才是 DBA 知识真正落脚的地方——系统提示强制严格的输出契约,温度设为 0.2 保证确定性,解析器先按 Query_time 排序,让模型的上下文预算花在真正疼的查询上。
关键的架构决定是:模型是基础设施,不是服务。没有 API key,没有用量面板,没有按 token 计费。把 AIDBA_API_BASE 指向自己的机器就能用。如果公司本来就在为别的事情跑 GPU,多一个 DBA 副驾驶的边际成本是零。
正方会说,云端厂商早就能做 AI 诊断数据库,功能更全、开箱即用。反方只回一句:输入是慢日志。本地推理在这里不是锦上添花,它本身就是产品。数据不出楼这件事,只有跑在自己手里的开放权重模型才能兑现。
成本结构也站在本地这边。按 token 计费的 DBA 副驾驶,恰恰在你最需要它的时候最贵——事故进行中,慢日志巨大。自托管推理是固定成本,对小团队来说,这是"用得起"和"只能打电话叫 DBA"之间的差别。
还有一层是通用云模型给不了的:细分调优。通用模型给通用建议,而权重开放意味着作者可以、也计划在真实的 DBA 事故报告上做微调——MySQL 特有的故障模式、特定版本的坑,这些是通用 API 永远不会专门去啃的东西。开放权重让一个人的副业,在深度上有可能压过厂商的机器学习团队。
这个工具还接上了他已有的项目 DBCheck,一个免费开源的数据库巡检平台。AI DBA 直接消费 DBCheck 的采集包作为输入:巡检找出哪里不对,模型解释为什么以及怎么修。开放权重让这条流水线成立,两端都不用向第三方交过路费。
代码在 GitHub 的 aimdotsh/ai-dba 仓库,附了一份 sample-slow.log,可以直接拿来试。演示是录屏而不是公开链接——因为整个项目的重点,就是没有公开链接。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.