| 识别 | 对比各分片行数、吞吐与延迟分布,找明显偏差 |
|---|---|
| 加盐 | 热点键追加随机后缀分散写入,读取时聚合 |
| 重选 | 改用分布更均匀且仍贴合查询的分片键 |
加盐拆分示意
加盐拆分示意
原键:user_id=42 → shard = 42 % 16 → 单分片热点
加盐:key = '42#' + rand(0..3) → 写入分散到 4 个分片
读取:并发读 4 个盐值分片后合并
统计:按原始 user_id 聚合,忽略后缀
注意:只对确认的热点键加盐,避免全量加盐- 识别:按分片统计行数、QPS 与延迟分布,找明显离群分片
- 分类:键分布不均、单键热点与空值键,治理手段各不相同
- 验证:治理后用同一统计口径复测,确认分片间差异收敛
倾斜治理要同时验证查询模式:加盐拆分后按原键查询需要合并多份数据。