用途:在涉及数据库模式设计、迁移编写、索引创建或架构决策时应用 PostgreSQL 18 最佳实践,避免照搬旧版本或其他数据库的模式。触发场景包括 migrations 目录、schema SQL、db 目录 SQL、索引文件及 models、entity、Python model 等文件。
主要能力:
- AIO 子系统:顺序扫描、COPY、Vacuum、索引构建自动受益,建议在热路径采用顺序访问、用分区支持并行顺序扫描。
- 原生 uuidv7():作为新表主键默认值,时间有序、索引友好、分布式安全;不再使用 uuid-ossp 扩展或 gen_random_uuid()。
- 生成列:简单、少索引的计算用 VIRTUAL,需索引或计算昂贵的用 STORED。
- 时间约束:支持 WITHOUT OVERLAPS 的时间主键、时间外键,以及双时态建模(有效时间与事务时间)。
- B-tree 跳扫:复合索引可兼顾首列与前缀列之外的查询,低基数列宜放前面。
- 模式规范:表名 snake_case 复数、主键 id uuid、外键 {表单数}id、索引 idx{表}{列}、约束 {表}{用途}_check;时间戳统一 timestamptz;JSON 用 jsonb。
- 迁移:事务包裹、版本检查、迁移后断言;危险操作分步进行;索引用 CREATE INDEX CONCURRENTLY。
- 索引与查询:B-tree、Hash、GiST、GIN、BRIN 的适用场景,部分索引、表达式索引、JSONB 索引;用 EXPLAIN (ANALYZE, BUFFERS) 检查;分页用 keyset 而非 offset,存在性判断用 EXISTS。
- 完成时输出数据库架构工件,列出变更表、所用 PG18 特性、索引、迁移安全与性能注意项。
使用方式:技能在开始时声明正在应用 database-architecture;按上述清单与模板执行,并在相关 issue 发布架构工件。
限制:资料仅针对 PostgreSQL 18,未提供其他数据库版本或平台的适用性说明、安装命令、价格与授权信息;具体部署与验证方式暂未提供。