Database Optimization 是一个专注于数据库性能优化的技能,主要覆盖查询优化、索引策略、N+1 问题解决和缓存实现。
适用场景 当需要优化缓慢的数据库查询、修复 N+1 查询问题、设计索引、实现缓存策略、优化数据库迁移或整体改善数据库性能时,可以使用该技能。
主要能力 查询优化:分析并优化 SQL 查询,建议使用 EXPLAIN ANALYZE、优化 JOIN、减少扫描数据量、使用合适的索引、避免 SELECT *。索引设计:为高频查询列建立索引,为多列查询使用复合索引,避免过度索引,监控索引使用情况并移除未使用的索引。N+1 问题解决:识别并修复循环内逐条查询的模式,改为使用 JOIN 或 includes 等单次查询方式。缓存:实现缓存层,资料中提及 Redis、Memcached。迁移优化:优化数据库迁移。性能监控:搭建查询性能监控。
使用方式 可直接提出优化请求,例如优化某个慢数据库查询、修复代码中的 N+1 问题;也可进行针对性分析,例如分析查询性能并给出索引建议。
示例 资料给出的示例中,针对按 email 查询用户且执行时间为 450ms 的语句,分析指出由于 email 无索引导致全表扫描并扫描超过 100 万行;优化方式为创建索引 idx_users_email,并将 SELECT * 改为只选取 id、email、name,执行时间从 450ms 降至 2ms。
最佳实践 先测量(使用 EXPLAIN ANALYZE)、有策略地建立索引、监控慢查询日志、缓存昂贵查询、在读取模式支持时进行反规范化。
参考文件 references/query_patterns.md,包含常见查询优化模式、反模式与缓存策略。
限制 资料未提供该技能的具体版本、支持的具体数据库种类、安装命令、收费方式或价格信息,这些内容暂未提供。