回答
如果你不介意我问,你为什么要考虑分片? 2GB应该很容易安装在一台服务器上。这就是说,如果你肯定要分割你的集合,那么选择一个非递增的分片密钥是非常重要的,这个分片密钥足够精细,从而永远不会发生分块不能分裂的情况。
例如,如果一个集合被单独拆分月那么就只有12种可能的块。如果1月份是插入的流行月份,那么可能会出现这种情况,即一百万(只是选择一个大数目)记录可能会插入到该块中,并且永远无法分割。
不选择递增(或递减)的分片键也很重要。随着新文档被插入到集合中,每个后续文档都将被添加到同一个块中,直到该块达到其大小限制并且必须被分割。然后可以将较低的块移动到不同的服务器,创建一个“瀑布”效果(一个碎片不断填满块,然后移动到其他碎片)。与此同时,所有新文档都会不断写入同一个碎片,创建所谓的“热点”。如果插入速率足够,磁盘可能会达到其IO限制,尝试写入新文档,同时将现有数据迁移到另一个分片。
蒙戈“分片介绍”的文件,对文件 如何存储在分片集合的详细信息。 http://www.mongodb.org/display/DOCS/Sharding+Introduction
此外,蒙戈文件“选择碎片密钥”提供了选择片键时需考虑什么好 细节。 http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key
如果可能,我建议您阅读Kristina Chodorow的“Scaling MongoDB”。 http://shop.oreilly.com/product/0636920018308.do这提供了一个很好的介绍分片以及更详细的解释Dos和选择上面提到的分片密钥。
以下是其他用户询问有关分片和选择分片密钥的一些问题的链接。 (您可能会认识到一些链接和一些作者)希望这些资源可以提高您对分片工作原理的理解,并且如果您仍然决定分割您的集合,请允许您选择一个高效的分片键。
“拆分不平衡” - http://groups.google.com/group/mongodb-user/browse_thread/thread/1328250382087448
“什么是设计用于该数据集的碎片指数最好的方法” - http://groups.google.com/group/mongodb-user/browse_thread/thread/5bda4a39d9be54f5
“低基数碎片键” - http://groups.google.com/group/mongodb-user/browse_thread/thread/3c96d1c254f113b1
“片键分析“ -
- 1. MongDB - 查询收集了大量
- 2. 无法创建封顶收藏mongdb
- 3. 收集在使用Python
- 4. Mongdb组合限制并使用排序查找功能
- 5. 收集使用VBA
- 6. 使用与收集
- 7. Mongodb聚合框架使用mongdb驱动2.2.16在结果集中给出“undefined”
- 8. 使用Docker身份验证的MongDB
- 9. 如何使用AFNetworking并行请求并收集所有结果
- 10. 如何收集一个grep并在aws中使用configset
- 11. 收集表单值并使用PHP在textarea中显示
- 12. 比较并使用和不使用垃圾收集器
- 13. 吉斯合并收集AbstractModules
- 14. 使用StopWatch收集测试
- 15. SSIS收集索引使用
- 16. 使通用收集路线
- 17. 使用hamcrest收集平等
- 18. 使用Javascript收集数据
- 19. 使用批量收集的PLSQL集合
- 20. 的NodeJS MongDB查询
- 21. 使用java流并收集一个通用类型
- 22. 反XML组“收集”未在收集
- 23. DocumentDB - 在收集
- 24. 在收集
- 25. 使用protobuf-net合并收集属性对象
- 26. 使用goroutines处理值并将结果收集到切片中
- 27. 使用AJAX从php页面收集链接并更新图像
- 28. 使用数组从MySql收集数据并创建变量
- 29. 收集,管理数据并通过api使其可用
- 30. 你应该在完整的垃圾收集中首先收集年轻一代吗?
你的问题是什么?这是否是一个好主意?创建时间是年,月还是DOB?还是什么? – 2012-04-05 15:33:03