加载中...
索引表模式为数据存储创建以非主键字段为键的辅助索引表,从而支持按常用查询条件快速定位数据。它常用于键值存储等不支持二级索引的系统中,以空间换取查询性能。

| 模式类型 | 数据管理模式 |
| 主要目的 | 加速非主键查询 |
| 代价 | 存储与写放大 |
| 一致性 | 通常最终一致 |
索引表模式(Index Table)是一种为数据存储建立额外辅助索引的设计模式。它针对应用经常查询但并非主键的字段,单独维护一张以该字段为键的索引表,指向实际数据,从而加速查询。
许多NoSQL与键值存储只对主键(分区键)提供高效查找,对其他字段的查询需要全表扫描。索引表模式借鉴关系数据库二级索引的思路,由应用维护一张或多张映射表,将查询字段映射到主键或数据副本,把扫描转化为直接查找。
该模式适用于Cassandra、DynamoDB、Azure表存储等缺乏灵活二级索引的系统,读多写少且查询模式相对固定的场景收益最大,例如按邮箱、手机号等字段检索用户。
问:索引表与主表如何保持一致?答:由于跨表更新难以原子完成,通常采用最终一致,通过异步同步或补偿任务修复,应用要能容忍短暂不一致。
问:索引表越多越好吗?答:不是。每张索引表都增加写放大与存储成本,应只为真正高频的查询建立,并定期评估其收益。

| 模式类型 | 数据管理模式 |
| 主要目的 | 加速非主键查询 |
| 代价 | 存储与写放大 |
| 一致性 | 通常最终一致 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧