Cosmos DB是否可安全排除_ts、_rid、_self等系统属性的索引?
关于Cosmos DB系统属性排除索引的安全性说明
如果你确认永远不会基于
_ts、_rid、_self这三个系统属性发起查询,将它们加入索引排除路径是完全安全的,不会影响Cosmos DB引擎的内部运行。
- 默认索引策略中仅
_etag默认排除,_ts、_rid、_self默认被纳入索引,是为了满足开发者基于这些属性做查询的通用需求,比如用_ts筛选指定时间范围内更新的文档、用_rid快速定位唯一文档等。 - 排除这三个属性的收益非常明确:可以降低索引占用的存储成本,同时减少写入操作消耗的RU,对于写入吞吐量高、数据量大的容器优化效果尤为明显。
- Cosmos DB引擎内部使用这些系统属性时,完全不依赖用户配置的自定义索引:这些属性的内部访问要么直接读取文档原始存储,要么使用Cosmos内部维护的系统级专属索引,和用户侧配置的索引策略完全隔离,因此排除索引不会对事务处理、分区调度、数据同步、常规增删改查等核心功能产生任何影响。
- 补充注意事项:如果后续你需要使用这些属性做查询,只需要将其从索引排除路径中移除即可,Cosmos DB会自动为存量和增量数据重建对应索引,过程中不会影响服务可用性。
内容的提问来源于stack exchange,提问作者Gaurav Mantri
相关产品推荐
相关产品推荐

