Files
Web_BLS_RCUAction_Server/openspec/changes/2026-03-03-parent-index-only-partitions/spec.md

1.2 KiB

Parent-only Index Strategy for Partition Creation

1. 背景

当前 rcu_action.rcu_action_events 使用按天 RANGE 分区。 本次调整目标是明确并固化索引策略:

  • 仅在父表创建索引
  • 分区子表不重复显式创建索引

这样可以避免子表重复索引带来的维护成本和潜在冲突,并保持分区创建逻辑简洁。

2. 策略定义

  1. 父表 rcu_action.rcu_action_events 作为索引定义唯一来源。
  2. 分区创建只执行 CREATE TABLE ... PARTITION OF ...
  3. 禁止在分区创建流程中追加 CREATE INDEX 到子分区。
  4. 索引初始化保持 IF NOT EXISTS 幂等语义。

3. 实施范围

  • src/db/partitionManager.js
    • 在分区检查流程中显式确保父表索引存在(幂等)。
    • 创建子分区时仅建分区,不做子表索引创建。
  • scripts/init_db.sql
    • 明确注释:索引仅建父表,子分区不重复建索引。

4. 验收标准

  • 分区创建 SQL 不包含任何对子分区的 CREATE INDEX
  • 父表索引可重复执行而不报错(IF NOT EXISTS)。
  • 运行初始化和分区预创建后,日志中仅出现父表索引保障与分区建表行为。