我正在记录GridFS,以及在不同机器之间共享它的可能性.

阅读文档here,建议的切分键是chunks.文件id.此键将链接到文件集合的_id,因此此_id是增量的.我在网格中保存的每个新文件都将有一个新的增量id.

在O'Reilly的《Scaling MongoDB》一书中,不鼓励使用增量分片密钥来避免热点(最后一个分片将接收所有的写和读操作).

你对GridFS系列的分片有什么建议

非常感谢.

推荐答案

你应该在files_id块上进行切分,以保持文件块在一起,但你是正确的,这将创建一个热点.如果可以的话,在fs.files集合中为_id使用ObjectId以外的东西(可能MD5s比ObjectId更好).

我们将为切分添加哈希,这将解决这个问题,但至少要等到2.0.

Mongodb相关问答推荐

如何在Mongo Aggregate Query中创建集合的对象ID数组,并在列表中查找另一个集合中的ID

MongoDB Aggregate:查找每个月的交叉日期范围的数量

如何在Golang保存到MongoDB时排除空数据值的问题?

如何使用聚合管道查找未销售但存在于产品详细信息集合中的产品的ID

使用特定关键字和邻近度进行查询和过滤

使用mongo'db.Decode(&dto)映射一个嵌套的 struct

类型错误:db.close is not a function

Mongo 无法启动

在 Nodejs 中找不到模块

升级mongodb

使用 Node.js 和 mongodb 处理超时

如何使用 java 驱动程序更新 mongo db 中的文档字段?

Mongoose 是否真的验证了对象 ID 的存在?

MongoDB count() 未定义

TypeError: object of type 'Cursor' has no len()

查询不等于 null 或空的地方

如何匹配 MongoDB 聚合框架中的 undefined值?

MongoDB 查询:字段不存在或具有特定值

更新时提示Field name duplication not allowed with modifiers

brew install mongodb 错误:Cowardly refusing to `sudo brew install' Mac OSX Lion