kri*_*ina 17
你应该files_id将文件块保持在一起,但你是正确的,这将创建一个热点.如果可以的话,_id在fs.files集合中使用除ObjectId以外的东西(可能MD5会优于ObjectIds).
我们将为分片添加散列,这将解决这个问题,但至少不会达到2.0.
你可以对gridfs数据进行分片,因为gridfs它只是两个集合:块和文件.而gridfs分割它是非常有用和伟大的事情.关于gridfs分片键总是不好选择随机或增量分片键,因为数据不能均匀分布在分片上.在增量分片键的情况下,所有写入到最后一个分片并且它增长并且一旦差异变为10个或更多块,则平衡器将数据移动到另一个分片.将数据移动到另一个分片始终是一项应该尽可能避免的困难任务.
因此,当您选择分片键时,您应该关心均匀分布数据.
另外,如果你获得了运气,那么' Scaling MongoDB '的作者kristina(伟大的分片键专家)会回答你的问题.
文档说,在常见情况下,您应该选择默认索引fileId:1,n:1作为分片键:
根据需要,可以通过不同的方式对GridFS进行分片.基于预先存在的索引,一种常见的分片方法是:
"文件"集合没有分片.所有文件记录都将存在于1个分片中.强烈建议使用现有索引"files_id:1,n:1"使该分片非常有弹性(至少3个节点副本集)"chunks"集合进行分片.范围末尾的某些文件可能会在分片中分割其块,但大多数文件将完全包含在同一分片中.
| 归档时间: |
|
| 查看次数: |
5992 次 |
| 最近记录: |