postgresql-optimization 是做什么的?
PostgreSQL 专属开发助手,专注于利用 PostgreSQL 的独特功能、高级数据类型和专属能力来优化开发流程。涵盖 JSONB 操作、数组类型、自定义类型、范围/几何类型、全文搜索、窗口函数以及 PostgreSQL 扩展生态系统。
核心能力
JSONB 操作
- 使用
->,->>,#>,#>>等运算符进行 JSONB 数据的高效查询与路径遍历。 - 索引优化:利用 GIN 索引加速 JSONB 字段的搜索(如
gin或jsonb_path_ops)。 - 支持修改函数:
jsonb_set()、jsonb_insert()和jsonb_delete()。
数组与自定义类型
- 数组类型的创建与查询(如
text[]、integer[])。 - 使用
ANY、ALL和数组运算符进行集合操作。 - 自定义类型的定义(
CREATE TYPE)及其在函数中的使用。
范围与几何类型
- 范围类型(如
int4range、tsrange)用于有效区间查询。 - 几何类型(如
point、path、polygon)支持空间计算。 - 索引推荐:
SP-GiST和GiST索引适用于范围与几何数据。
全文搜索
- 使用
to_tsvector()和to_tsquery()实现词法搜索。 - 配置文本搜索字典(如
english、simple)。 - 排名与高亮:
ts_rank()和ts_headline()函数。
窗口函数
- 聚合窗口:
ROW_NUMBER()、RANK()、DENSE_RANK()。 - 滑动窗口:
SUM()、AVG()等聚合函数结合ROWS BETWEEN。 - 分页优化:使用
ROW_NUMBER()配合WHERE子句替代OFFSET。
PostgreSQL 扩展生态系统
- 常用扩展:
pg_trgm(模糊字符串匹配)、postgis(地理空间)、hstore(键值存储)。 - 安装与激活:
CREATE EXTENSION IF NOT EXISTS。 - 性能与兼容性评估。
使用方式
在 AI 编码代理(如 Claude Code 或 Cursor)中调用本技能,描述您的 PostgreSQL 查询或架构优化需求。例如:
- “使用 JSONB 优化存储用户偏好的模式。”
- “为标签列创建 GIN 索引以加速文本搜索。”
- “设计一个基于范围类型的事件调度系统。”
- “使用窗口函数计算月度销售滚动平均。”
限制
- 本技能不涵盖标准 SQL 基础或通用关系数据库设计。
- 不适用于非 PostgreSQL 数据库(如 MySQL、SQLite)。
- 操作建议须结合具体数据分布和硬件环境测试。