用途
该技能面向需要设计、查询和优化高性能 PostgreSQL 数据库的场景,提供一系列高级模式与示例代码,帮助开发者处理索引、复杂查询、数据库设计、事务并发以及监控维护等任务。
主要能力
性能优化
- 有效索引:B-tree 索引用于等值和范围查询;部分索引用于过滤查询;复合索引用于多列;GiST 索引用于全文搜索;GIN 索引用于 JSON 查询。
- 查询优化:使用 EXPLAIN ANALYZE 理解查询计划;避免 SELECT *;对大子查询使用 EXISTS 代替 IN;使用批量操作代替循环。
- 连接池:提供 Node.js 的 pg 连接池配置示例,包括最大连接数、空闲超时和连接超时。
高级查询模式
- 窗口函数:运行总计、带分区的行号、移动平均。
- 公共表表达式(CTE):递归 CTE 处理层级数据;多个 CTE 组合复杂查询。
- JSON 操作:查询 JSON 列、JSON 聚合、JSON 路径查询。
数据库设计模式
- 分区:按日期范围分区。
- 物化视图:为昂贵查询创建物化视图,定期刷新并建立索引。
- 约束与验证:检查约束、排除约束、域类型用于可重用约束。
事务与并发
- 事务隔离:可串行化事务用于关键操作;可重复读用于一致快照。
- 行级锁定:悲观锁定、共享锁、跳过已锁定行。
监控与维护
- 查询性能:查找慢查询、检查索引使用、表膨胀。
- 维护任务:VACUUM ANALYZE、REINDEX、ANALYZE。
最佳实践
- 始终使用参数化查询防止 SQL 注入。
- 在外键上创建索引以提升连接性能。
- 使用连接池管理资源。
- 使用 pg_stat_statements 监控查询性能。
- 定期执行 VACUUM 和 ANALYZE。
- 使用适当的事务隔离级别。
- 通过正确连接或批处理避免 N+1 查询。
- 为事务冲突实现重试逻辑。
集成点
- 补充 backend-implementation-patterns:用于 API 数据访问。
- 补充 tdd-workflow:用于数据库测试。
- 补充 verification-loop:用于查询性能检查。
- 补充 security-implementation-guide:用于安全查询。
使用方式
该技能以文档和代码示例形式提供,用户可参考其中的 SQL 语句、配置片段和最佳实践,将其应用到实际的 PostgreSQL 数据库开发与优化工作中。具体安装或调用方式暂未提供。
适用场景
适用于需要优化 PostgreSQL 性能、编写复杂查询、设计数据库结构、处理事务并发以及进行数据库监控和维护的开发场景。
限制
资料中未提供关于收费、价格、平台支持、效果保证或具体使用步骤的详细信息。