Cosmos DB Cassandra API跨分区索引使用咨询:选索引还是二级表?
关于Cosmos DB Cassandra API的索引与跨分区查询建议
一、Cassandra的索引规则是否适用于Cosmos DB?
Cassandra中“索引优先对应单个分区,跨分区查询优先用物化视图/二级表”的核心规则基本适用,但存在细节差异:
- 原生Cassandra的二级索引跨分区查询会触发全集群扫描,性能极差;而Cosmos DB Cassandra API的二级索引是全局索引,跨分区查询不会扫全集群,但依然会产生跨分区请求,消耗更多RU(请求单位),且涉及分区数越多,性能和成本的损耗越明显。
- 两者设计思路本质一致:都不建议依赖索引做高频跨分区查询,优先通过预构建的存储结构(二级表)匹配查询模式。
二、20个分区20行数据的场景选择
低频查询场景
直接用二级索引即可,不会产生显著性能或成本损耗:
- 仅涉及20个分区、20行数据,跨分区查询的RU消耗呈线性,单次查询成本极低,性能也能满足需求,且无需额外维护冗余表,实现成本低。
高频查询场景
必须创建二级表:
- 高频跨分区索引查询的累计RU消耗会随查询次数快速上升,长期成本很高;且数据量增长后,索引查询的延迟会变得不稳定。
- 二级表可将查询所需字段按查询键作为新分区键,查询时直接命中单个分区,性能稳定,RU消耗远低于跨分区索引查询,是当前(物化视图不可用)的最优方案。
内容的提问来源于stack exchange,提问作者Eugene
相关产品推荐
相关产品推荐

