azure-cosmosdb - 如何通过分区优化 cosmoDB 并最终降低成本
问题描述
我有一个 CosmoDb 数据库,其中包含 3 个集合(每个国家/地区的概念,1 个集合),每个集合有 50 多条记录。现在我想优化收藏,以降低成本!
优化收藏的最佳方法是什么?
分区是否有助于降低成本?
编辑更多细节:有三个国家说,美国,墨西哥,英国。我为每个国家/地区收集了 3 个系列。USCollection、MexicoCollection、UKCollection。每个集合包含多条记录。国家 ID 用作此记录中的唯一键。我有一个写操作和一个读操作。
注意:我已经尝试了将 CosmoDB 数据库迁移到 Azure 存储表的选项,因为文档的数据结构嵌套且复杂,我得出的结论是这不是一个好主意。
解决方案
我会为每个国家/地区使用带有分区键的 1 个集合,而不是每个国家/地区的集合。您为每个集合支付保留的 RU/s 量。分区键不会影响成本,但会影响您是否需要执行成本更多 RU 的跨分区查询。
如果您出于某种原因需要保留单独的集合,那么您可能会利用数据库级别的定价,但这可能不会为您节省任何钱。
省钱的最佳建议是确保您的索引设置正确,以便您的写入操作快速/便宜,并且您的读取不需要进行扫描。
-- 编辑提及跨分区查询对 RU 的影响。
推荐阅读
- c - 是否可以在以后的循环迭代中增加模运算符?
- java - 如何判断一段java代码是否是heap-allocation-free的?
- twilio - 无论实际结果如何,Twilio 始终返回“进行中”
- python - 如何在 python 测试中模拟 subprocess.check_call 异常
- flex-lexer - 设置 %option prefix= 时如何让 automake 识别 flex 生成的非默认文件名
- regex - 如何在标题右侧正则表达式匹配(删除)任意一系列以逗号分隔的两字母语言代码?
- python-3.x - 字典列表:合并、排序和挑选前 (n) 个条目
- sql - 如果不存在,则将 Table1 中的数据插入到 Table2 中,否则更新 table2 中的数据以匹配 Table1。在任何一种情况下,从 Table1 中删除
- asp.net-core - 错误 MSB3644:找不到框架“.NETFramework,Version=v5.0”的参考程序集
- parsing - 找出调用哪个命令的有效方法?