MongoDB/CouchDB用于存储文件+复制?

sil*_*lla 3 database couchdb mongodb nosql

如果我想存储大量文件+复制数据库,那么NoSql数据库对于这类工作最好?

我正在测试MongoDB和CouchDB,这些数据库非常好用且易于使用.如果有可能我会使用其中一个来存储文件.现在我看到了Mongo和Couch之间的区别,但我无法解释哪个更适合存储文件.如果我在谈论存储文件,我的意思是10-50MB的文件,也可能是50-500MB的文件 - 可能还有很多更新.

我在这里找到一张漂亮的桌子:

在此输入图像描述

http://weblogs.asp.net/britchie/archive/2010/08/17/document-databases-compared-mongodb-couchdb-and-ravendb.aspx

仍然不确定哪些属性最适合文件存储和复制.但也许我应该选择另一个NoSql DB?

Sam*_*aye 5

那张桌子已经过时了:

  • 主 - 从复制已被弃用,有利于初学者的副本集,并且一致性也是错误的.您将需要完全重新阅读MongoDB文档中的此部分.
  • Map/Reduce只是JavaScript,没有其​​他.
  • 我不知道该表是什么意思附件,但GridFS是内置在驱动程序中的存储标准,以帮助更容易地在MongoDB中存储大文件.通过此方法也支持元数据.
  • MongoDB是2.2版本,所以它之前提到的任何版本现在都已过时(即分片和单服务器持久性).

我没有使用CouchDBs界面存储文件的个人经验,但如果两者之间几乎没有任何差异,我也不会感到惊讶.我认为这部分对我们来说太主观了,你需要更好地选择哪一套.

实际上,可以构建MongoDB集群多区域(S3存储桶不能并且不能在没有工作的情况下复制),并通过MongoDB将世界特定部分中访问最多的文件复制到这些集群.

我的意思是我有时发现的主要结果是MongoDB可以像S3和Cloudfront一样放在一起,这很好,因为你有冗余存储和分发数据的能力.

然而,说S3是非常有效的选项,我会认真尝试,你可能不会在内容网络中寻找与我相同的东西.

文件的数据库存储没有它们的严重缺点,但速度不应该是一个巨大的问题,因为你应该从没有Cloudfront前端S3获得相同的速度,因为你应该从MongoDB获得真正的(记住S3是一个冗余存储网络,而不是CDN).

如果您要使用S3,那么您将在数据库中存储一行指向该文件并包含有关它的元数据.