我有一个拥有1.7亿个文档的集合,它只会去 增加。目前,该系列的尺寸并不大 大约70 GB。
该集合有两个索引的字段:{AgentId:1,PropertyId:1} 。 通常一个人导入一个巨大的文件(数百万个文件) 一个特定的A gentId但是PropertyId(非数字可空)是 主要是随机的唯一值。
目前,基于{_id:hashed} ,我有两个带分片键的分片。但 我打算将分片键更改为复合索引{AgentId:1, PropertyId:1} 因为我认为它会提高查询性能(大多数情况下) 查询基于AgentId过滤器)。不确定是否可以 在分片键中有一个可为空的字段。如果是这种情况,那么应用程序 将确保PropertyId是随机编号。
所以希望得到一张照片
- 在插入过程中如何将数据分发到分片 以及在插入过程中如何计算块的范围?
醇>
- 由于PropertyId是随机值。复合键是否适合 单调递增价值的定义?
我是mongodb的新手。并且想知道我是否走在正确的道路上?
由于
答案 0 :(得分:0)
MongoDB中没有自动支持在分片集合后更改分片键。
这一现实强调了选择好的分片键的重要性。如果在分片集合后必须更改分片键,则最佳选项是: