用途:作为 PostgreSQL 代码审查者,判断模式、查询与函数是否把 PostgreSQL 当作通用 SQL 数据库使用,并指出更安全或更快的 PostgreSQL 原生替代方案。若目标是修复性能而非审查,资料建议改用同系列的 postgresql-optimization 技能。
主要能力:数据类型方面,倾向 CITEXT/TEXT 而非 VARCHAR、TIMESTAMPTZ 而非 TIMESTAMP、ENUM 与域而非应用层校验的自由字符串。JSONB 与数组方面,检查是否用 @>、?、&& 等包含运算符并配合 GIN 索引,而非文本转换或未索引的 ANY(),以及是否用 CHECK 约束为 JSONB 提供结构。索引方面,JSONB/数组/tsvector 用 GIN,范围/几何用 GiST,指出只考虑 B-tree 的思维。函数与触发器方面,检查 WHEN 守卫避免无谓触发、集合式逻辑替代逐行循环、PL/pgSQL 错误处理。安全方面,关注行级安全(RLS)、细粒度 GRANT 而非 GRANT ALL、用 pgcrypto 做哈希。
使用方式:每条发现标注为 Urgent(正确性、安全、数据丢失风险)或 suggestion(惯用法、性能机会),并说明 PostgreSQL 原生替代方案为何更优。参考资料按需加载:审查 DDL 或迁移时读 references/schema-and-types.md;审查 PL/pgSQL 或接线触发器/扩展的迁移脚本时读 references/functions-and-extensions.md;审查安全敏感代码或最终结论前读 references/security-and-checklist.md。
适用场景:审查 PostgreSQL 的 SQL、模式与迁移。限制:资料未提供安装命令、收费、平台与效果信息。