我们正在评估静态文件存储替代方案的选项(在多个地理位置之间托管)。
我们正在研究MongoDB。有没有人可以建议专业人士和基于上述假设或任何其他替代方案的利弊?
MongoDB的一些研究显示......
我有原型从静态文件系统读取数字资产并将其存储到默认块中的MongoDB GridFS。将缩略图和原件存储到MongoDB的更好方法是什么?由于缩略图总是小于16MB,但原始可能/不超过16MB,所以默认情况下我应该将所有图像资产存储在GridFS上吗?
我可以设想根据内容类型创建不同的数据库,例如:一个用于PDF,Excel,Word,另一个用于图像。
我真的很感激任何意见。
谢谢。
答案 0 :(得分:0)
MongoDB的一些研究显示......
磁盘空间消耗是原始数据大小的3倍 通过-oplogSize参数减少空间消耗如果我们尝试阅读 块和流到浏览器的速度可能比慢6倍 从静态文件存储中读取它。复制不是双向的 它可以作为主人和奴隶。
您是否曾尝试存储数据或仅在某处找到某些信息?如果您使用数据库(无论哪个)而不是普通文件存储,则始终存在开销。为什么?好吧,你有索引和元信息。
mongodb是一个没有共同强大的一致数据库。因此,您将数据写入一个节点,然后进行复制。但您可以使用WriteConcerns(http://docs.mongodb.org/manual/core/write-operations/#write-concern)等待,以确保您的数据已写入replicaset中的数量,大多数节点等。通过复制,您可以在不停机的情况下进行滚动升级,并且使用分片也可以非常轻松地进行扩展。并使用shard-tags将文档“固定”到特定的分片。见这里:http://www.kchodorow.com/blog/2012/07/25/controlling-collection-distribution/