使用GridFS - 它应该在一个单独的数据库上吗?

时间:2011-12-31 15:33:04

标签: mongodb mongoose gridfs

我正在创建一个拥有大量音频存储空间的网站,我希望使用GridFS进行分片,并且能够轻松地在多台计算机上扩展数据库。

我的问题是,将文件放在单独的mongo数据库中会更好吗? mongodb中会有大量的文档,我只是不确定当你开始使用GridFS部分进行分片时会发生什么。

谢谢!

1 个答案:

答案 0 :(得分:3)

即使将GridFS存储保存在与其他集合相同的数据库中,当您需要移动到分片时,仍然可以选择要剪切(或不存在)的集合。也就是说,如果你将它放在一个单独的数据库中,如果你愿意的话,你将能够更轻松地将它移动到一个单独的集群中 - 例如,你可以为你的“主要”集合创建一个3个分片集群, GridFS的5个分片群集(或您选择的任何其他配置)。

至于分片GridFS集合,请参阅the MongoDB docs on choosing a shard key for GridFS。通常,人们在chunks上对files_id集合(文件数据本身存储的位置)进行分片,以便同一文件的所有块都驻留在同一个分片上。再次,请参阅文档页面了解更多详细信息。