关于 optimize-database
面向 Agent 的数据库优化 Skill,可审查不同技术栈的数据层。它依据代码库证据确定问题优先级,并强调安全发布与验证,而非套用通用调优方案。
主要功能
- 01识别数据库组件与配置
- 02审查完整性、索引、查询和运维
- 03按证据与影响排列瓶颈
- 04规划带回滚保障的迁移
- 05破坏性操作前要求确认
适用场景
- 01排查数据库查询缓慢
- 02审查数据完整性与安全风险
- 03规划安全的模式或索引变更
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ furqanistic/ aura-skills --skill optimize-database安装后在 Claude Code 中输入/optimize-database确认已加载。
附带文件agents/openai.yamlreferences/database-guide.md
详细介绍
数据库优化
优化任何数据库技术时,不要假定使用 MongoDB、PostgreSQL、MySQL、ORM 或特定托管服务提供商。先检查证据,再提出建议。
首先:检测数据层
在仓库中搜索数据库驱动、ORM/查询构建器包、连接配置、架构/模型、迁移、索引、约束、仓储层、原生查询、事务、种子数据、缓存、搜索系统、后台作业、分析工作负载、测试、部署配置和监控。
识别:
- 数据库引擎、版本、扩展、拓扑、托管方式和环境;
- 驱动、ORM/查询层、版本、连接池、重试和超时配置;
- 架构、关系、约束、索引、迁移和所有权;
- 高流量读写路径、数据量/增长、并发、延迟和吞吐量;
- 副本、分区/分片、缓存、队列、备份/恢复、保留策略和可观测性。
如果存在数据层,说明其当前设计、合理的选择、已测量或有证据支持的问题,以及按优先级排序的安全改进计划。如果不存在数据层,则根据产品对一致性、查询、规模、安全性和运维的要求,设计最精简合适的持久化方案。
不要静默升级数据库、驱动或 ORM。更改版本前,检查发行说明、兼容性、迁移要求和回滚方案。
强制全面审计
检查所有适用领域,即使请求只提到一个慢查询:
- 正确性与完整性 — 类型、可空性、唯一性、外键/引用、验证、不变量、事务、隔离性、幂等性和一致性。
- 索引 — 缺失、未使用、重复、重叠、无效、选择性低、过大、写入密集型、外键、复合索引顺序、覆盖索引、部分索引、表达式索引、文本索引、地理空间索引、TTL 索引和唯一索引。
- 查询与执行计划 — 扫描、选择性、基数估算、连接策略、排序/分组操作、临时工作、N+1 调用、重复查询、过度获取、应用侧过滤和执行计划回归。
- 访问模式 — 实际筛选、排序、连接/填充、聚合、写入、热点键/行、批量操作,以及读写放大。
- 分页与限制 — 稳定排序、最大限制、游标/键集策略、大偏移量、不受限导出,以及计数查询成本。
- 架构与建模 — 规范化/反规范化、关系所有权、文档增长、行宽、大字段、枚举、时态/历史数据,以及多租户边界。
- 并发 — 事务、隔离级别、锁、死锁、乐观/悲观控制、竞态条件、长时间运行的工作,以及连接耗尽。
- 连接 — 连接池大小、泄漏、超时、重试、退避、预处理语句、代理/无服务器行为,以及优雅关闭。
- 缓存 — 是否需要、键、TTL、失效、一致性、缓存击穿防护、负缓存、内存限制,以及故障回退。
- 迁移 — 向后兼容性、锁、表重写、在线创建索引、回填、扩展/收缩式发布、验证、回滚和部署顺序。
- 运维 — 慢查询日志、指标、追踪、告警、vacuum/analyze 或等效维护、统计信息、碎片/膨胀、存储和成本。
- 可靠性 — 备份、恢复测试、时间点恢复、复制、故障转移、灾难恢复、RPO/RTO 和核对。
- 增长 — 保留策略、归档、分区/分片、副本、物化视图、队列、数仓/搜索分离、容量预测和扩展阈值。
- 安全与隐私 — 最小权限、凭据存储/轮换、加密、网络访问、租户隔离、敏感字段、审计日志、删除/保留策略,以及注入风险。
工作流
- 使用耗时、吞吐量、资源使用情况、查询计划、慢查询日志、跟踪信息,或有代表性的代码和数据建立基线。
- 跟踪完整的请求/作业,直到其中每一次数据库和缓存操作。
- 根据证据和对用户的影响对瓶颈进行排序,而不是套用通用调优方案。
- 根据实际的等值/范围筛选条件、联接、排序顺序、唯一性、选择性和投影匹配索引,同时考虑写入和存储开销。
- 在增加基础设施之前,先修正查询结构和数据访问方式。只选择所需字段,批量处理,消除 N+1 调用,限制结果数量,并在适当时使用稳定的游标/键集分页。
- 在进行性能改动之前,检查正确性、事务、并发和租户/安全边界。
- 只有在更简单的修复方案和实测需求足以证明其运维成本合理时,才添加缓存、副本、分区、搜索引擎、队列或分片。
- 将每项架构、约束、索引或数据重写都视为一次迁移,提供预发布环境的验证证据、发布监控以及回滚/恢复方案。
- 重新运行原始测量,并报告变更前后的证据、权衡取舍以及剩余容量限制。
安全性
未经明确确认,切勿执行破坏性或不可逆的数据库操作。这包括删除数据或索引、清空表、不安全的删除操作、删除或重命名列、破坏性类型变更、重置迁移、重新分区,以及盲目清空生产环境缓存。请先确认具体环境和目标,验证可用的备份/恢复路径,在有代表性的预发布数据上进行测试,评估锁和磁盘余量,并准备回滚步骤。
详细指南
请阅读 references/database-guide.md,了解特定数据库的索引和查询模式、ORM 建议、连接池、缓存、迁移和备份清单、大规模场景策略,或详细的审查格式。按标题搜索,并仅加载与检测到的技术栈相关的章节。
输出
首先说明是否发现现有数据层,并概述其引擎、版本、拓扑结构和查询工具。按严重程度以及实测或预期影响报告发现。对于每项建议,说明证据、预期收益、权衡取舍、安全发布方式、回滚方案和验证方法。即使不建议新增索引,也要包含索引审查。分别列出正确性/数据丢失风险、安全风险、性能瓶颈、可靠性缺口、容量问题和推测性调优。