数据库优化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/kg-database-optimizer
技能介绍
要解决的问题
PG/MySQL 查询突然变慢,常见根因不是“数据库不行”,而是执行计划退化、索引缺失或 SQL 写法触发全表扫描。人工排查时容易只看单条 SQL,忽略慢日志、锁等待、临时表和数据分布;改完索引后又缺少复测,无法确认计划是否真的改善。这个技能面向这类问题:把慢查询、执行计划和约束放在一起分析,给出可执行的跨引擎优化建议。
技能如何工作
核心能力包括慢查询定位、执行计划解读、PG/MySQL 跨引擎建议和优化结果验证。工作流分五步:
- 收集:输入自然语言需求、约束和可选代码片段;优先整理慢日志、执行计划与数据分布。
- 诊断:定位全表扫描、锁冲突、临时表和低效谓词,判断是结构问题还是执行问题。
- 优化:围绕索引、SQL 重写和参数配置给建议,而不是只给“加索引”这种空泛结论。
- 验证:对比优化前后的执行计划与耗时,检查是否真正降低成本。
- 输出:返回
DbOptReport,并附自然语言摘要、质量自检和最该改的 2-3 点。
适用边界
它适合 PG/MySQL 慢查询排查和跨引擎优化。涉及 PostgreSQL 或 MySQL 的深度专项特性时,应由 postgres-pro、sql-pro 处理;NoSQL 调优不在本技能范围内。输出是分析工件和建议,不替代 DBA 在生产变更前的评审与灰度验证。
使用场景
- PostgreSQL 生产环境慢查询频发,需要从慢日志中定位 TOP SQL 并分析执行计划找出瓶颈
- MySQL 复杂查询耗时 2 秒以上,需要检查是否触发全表扫描、临时表或类型转换问题
- 团队计划从 MySQL 迁移到 PostgreSQL,需要一套跨引擎的索引与 schema 调整建议
- 改完索引和参数后,需要对比前后执行计划和耗时来验证优化是否生效
适合人员
- 后端工程师:面对慢查询需要快速定位根因并给出可执行的优化方案
- 数据库管理员:在 PG/MySQL 混合环境中需要跨引擎的索引和参数调整建议
- 全栈开发者:应用同时部署在 PG 和 MySQL 上,需要一套通用的 SQL 优化思路
- 数据平台工程师:报表查询变慢时需要分析执行计划并优化复杂 SQL