**按账户和时间对账本(ledger)分区,让近期数据保持热、旧数据变冷,并把行视为只追加的不可变账本——这样单个账户的历史就是一个小而有 index 的切片,绝不是对数十亿行的扫描。**访问模式永远是"一个账户,一个日期范围",所以分区要与之匹配。
架构
text
Write ─▶ Ledger table (append-only, immutable)
partition by (account_hash, month)
│
┌────────┴─────────┐
HOT tier COLD tier
last 3 mo older
Postgres/SSD S3/Parquet, Glacier
│ │
index-seek keyset paginate ──▶ API (account+range)
