feat: 实现GUID主键与service_mask索引改造
- 将主键从自增id改为GUID格式并添加格式校验 - 为service_mask添加表达式索引优化首位查询性能 - 更新相关文档说明改造方案与验证步骤 - 添加统计模块记录数据库写入与Kafka消费量 - 重构Redis心跳协议改用LIST类型存储项目状态 - 修复部署脚本中的服务名称不一致问题
This commit is contained in:
@@ -11,13 +11,13 @@
|
||||
|
||||
## 2. 偏差与风险(需要评估)
|
||||
### 2.1 “主键仅 id” 与 PostgreSQL 分区约束冲突
|
||||
- 需求写:主键为 `id (bigserial)`。
|
||||
- 现实现:`PRIMARY KEY (ts_ms, id)`。
|
||||
- 需求写:主键为 `id`(GUID)。
|
||||
- 现实现:`PRIMARY KEY (ts_ms, guid)`(其中 guid 为 varchar(32))。
|
||||
|
||||
原因:PostgreSQL 分区表的主键/唯一约束通常需要包含分区键,否则无法在父表创建全局约束。
|
||||
|
||||
影响:
|
||||
- 业务若强依赖“仅 id 即主键”的语义,需要额外约定(例如只把 id 当作全局唯一序列号使用,主键组合用于物理约束)。
|
||||
- 业务若强依赖“仅 guid 即主键”的语义,需要额外约定(例如只把 guid 当作全局唯一序列号使用,主键组合用于物理约束)。
|
||||
|
||||
### 2.2 “自动分区”实现方式
|
||||
- 需求写:新分区可自动创建。
|
||||
|
||||
Reference in New Issue
Block a user