SuperAPI AI 工具集

postgresql

数据与分析

查看项目

更新于 10-15 22:17

技能介绍

用途:该技能用于 PostgreSQL 的模式设计、查询优化、索引与数据库管理,适合在涉及 JSONB、分区、行级安全(RLS)、CTE、窗口函数等工作时参考。

主要能力与规则:强调保真场景下原始字节应以字节保存,解析类型另设列用于查询;已部署的迁移视为不可变,发布期间需兼容新旧应用版本;数据回滚需保留来源信息,按目标值选行可能误选正向迁移未触及的行,需在明确策略下保留受影响标识与原值,并用将读取该数据的应用版本验证恢复结果;检查锁持续时间与事务范围,保护读改写路径免受并发更新影响;索引谓词与 NULL 语义需匹配所有写入方与迁移查询;用代表性数据和真实执行计划衡量查询变更,并以数据库结果验证不变量。

数据类型默认建议:主键用 BIGINT GENERATED ALWAYS AS IDENTITY(避免 SERIAL/BIGSERIAL);时间戳用 TIMESTAMPTZ(避免 TIMESTAMP);文本用 TEXT(除非需要约束才用 VARCHAR(n));金额用 NUMERIC(precision, scale)(避免 MONEY、FLOAT);布尔用 BOOLEAN 加 NOT NULL DEFAULT;JSON 用 JSONB(避免 JSON 与文本 JSON);UUID 用 gen_random_uuid()(PG13+);IP 用 INET/CIDR;范围用 TSTZRANGE、INT4RANGE 等;原始字节用 BYTEA。JSONB 会重新解析,丢弃无意义空白、排序对象键、仅保留重复键的最后一个并改写指数记法数字;非 JSON 正文无法存储,通常落为 NULL;TEXT 拒绝 NUL 字节与数据库编码无效序列。需字节保真时应存 BYTEA 并在旁记录内容类型,查询需要时另加解析后的 JSONB 列。

验证方式:从 EXPLAIN 开始检查变更查询;仅在授权且安全时用代表性数据运行 EXPLAIN (ANALYZE, BUFFERS);写入优先用一次性数据,仅当所有相关效果均属事务性时才用事务加回滚;调查意外的顺序扫描并比较实际成本,读取大部分表时顺序扫描可能更便宜;完成前确认外键列均已建索引。

任务参考:表设计、约束、模式变更或回填参考 schema-and-migrations.md;索引、查询计划、JSONB、分页或查询反模式参考 query-and-index-patterns.md;RLS、事务边界、锁、分区、连接池或运维特性参考 security-and-operations.md;另有 operations.md、concurrency-patterns.md、full-text-search.md、performance-patterns.md 等专题参考。

限制:资料未提供具体安装命令、版本兼容范围、性能基准或收费信息。