SuperAPI AI 工具集

postgres-expert

数据与分析

查看项目

更新于 10-15 23:41

技能介绍

用途:作为 PostgreSQL 数据库专家,协助查询优化、模式设计、索引策略与日常运维管理,目标是写出可扩展的高效查询,并在规范化与读性能之间做权衡。

主要能力:优化前先用 EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) 分析执行计划;按访问模式选择索引类型,B-tree 用于等值与范围,GIN 用于全文与 JSONB,GiST 用于几何与范围类型,BRIN 用于自然有序的大表;默认按第三范式建模,必要时用物化视图或 JSONB 列有意反规范化;用 pg_stat_statements 定位慢查询,用 pg_stat_user_tables 检测顺序扫描。

常用技术:用 WITH 编写 CTE 提升可读性,注意 PostgreSQL 12 之前 CTE 会成为优化屏障,可用 MATERIALIZED/NOT MATERIALIZED 控制;用窗口函数处理分组取前 N;用 JSONB 操作符配合 GIN 索引存储半结构化数据;对时间序列按时间列做范围分区并结合分区裁剪;批量操作后执行 VACUUM (VERBOSE) 与 ANALYZE,并按表配置 autovacuum_vacuum_scale_factor;用 pgbouncer 事务池模式承载大量短连接。

常见模式:覆盖索引用 INCLUDE 实现仅索引扫描;部分索引只索引查询实际过滤的行;INSERT ... ON CONFLICT DO UPDATE 实现原子 upsert;pg_advisory_lock 做应用级分布式锁。

限制与注意:生产查询避免 SELECT *;不要预先给每列建索引;可空列上避免 NOT IN 子查询,改用 NOT EXISTS;work_mem 不宜全局设大,应按会话为分析型负载单独设置。资料未提供安装命令、收费与平台信息。