Cosmos DB 容器中存在大量垃圾文档。批量删除文档或删除容器并重新创建它是否更好?批量删除会消耗RU,那么删除容器呢?在删除容器之前删除文档是否会消耗 RU?
最佳答案
确实没有“正确”的答案 - 只有您可以决定哪种方法“更好”,但是......从客观的角度来看:
- 删除容器的成本可以忽略不计,而且是一次性成本(也就是说......它是一次“删除”成本)。对于您关于采用“删除集合”路线时删除所有文档的成本的问题:不 - 这只是一个集合删除 - 在删除集合时,您不需要为每个被删除的文档支付 RU 费用。
- 批量删除文档每个删除的文档都会消耗 RU - 这绝对会消耗 RU,并且存在被限制的风险,具体取决于删除事件的激进程度
- 删除所有文档需要您考虑删除可能会跨分区发生 - 相应地进行规划
- 如果您删除该集合,您的应用可能会在一段时间内因该集合不存在而引发异常(直到您重新创建该集合,这可能需要几秒钟的时间)
- 重新创建集合时,请务必重新创建该集合的所有相关属性(自定义索引、存储过程等)
作为批量删除的替代方法,您还可以利用 ttl 让旧文档过期。
关于azure - 删除 Cosmos DB 容器是否会消耗 RU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75388974/