SuperAPI AI 工具集

database-patterns

数据与分析

查看项目

更新于 10-16 00:04

技能介绍

用途:这是一份数据库设计模式参考,用于设计 PostgreSQL + Redis 数据模型、索引、缓存策略、JSONB 用法、分层存储与缓存一致性契约。

核心原则:PostgreSQL 作为主库处理关系数据、事务与复杂查询;Redis 作为二级存储用于缓存、会话与实时数据;索引优先设计,先设计查询再设计索引;JSONB 谨慎使用,结构化数据优先用列;默认采用 Cache-Aside(旁路缓存),读穿透、写绕过;分层存储区分热/温/冷数据;不做向后兼容,迁移数据而非保留旧 schema。

PostgreSQL 部分:给出数据类型选择建议(主键用 UUID/BIGSERIAL,时间戳用 TIMESTAMPTZ,金额用 NUMERIC(19,4),状态用 TEXT + CHECK,半结构化用 JSONB,全文检索用 TSVECTOR);schema 设计示例含 uuid-ossp 扩展、CHECK 约束与 updated_at 触发器;索引策略覆盖 B-Tree、复合索引最左前缀、部分索引、JSONB 的 GIN 索引、表达式索引与全文检索索引;JSONB 用于动态属性,常用字段应提取为列;查询优化建议使用 EXPLAIN ANALYZE 并识别 Seq Scan、Sort、Nested Loop、Hash Join 等问题;连接池给出 pg 的 Pool 配置与连接数估算公式。

Redis 部分:按用途选择数据结构(String、Hash、Sorted Set、List/Stream、Set、Pub/Sub);键命名采用 <entity>:<id>:<attribute> 并用 SCAN 匹配;TTL 策略示例;缓存模式含 Cache-Aside、Write-Through、缓存失效、缓存击穿(锁 + 双重检查)与缓存穿透(缓存 NULL)防护。

分层存储与事务:热(Redis,<1ms)、温(Postgres,~10ms)、冷(归档,~100ms+);按时间范围分区并归档旧数据;事务示例展示多表操作的 ACID 用法与乐观锁(version 列)。

限制:资料为设计模式与示例代码,未提供具体版本要求、性能基准、部署步骤或收费信息;示例代码需按实际技术栈调整。