mongodb - GridFS 对于生产来说是否足够快速和可靠?

我开发了一个新网站,我想使用 GridFS 作为所有用户上传的存储,因为与普通文件系统存储相比,它提供了很多优势。

nginx 服务的 GridFS 的基准表明,它不如 nginx 服务的普通文件系统快。

Benchmark with nginx

是否有人已经在生产环境中使用 GridFS,或者会将其用于新项目?

最佳答案

我在我们的一台服务器上使用 gridfs,该服务器是价格比较网站的一部分,具有可观的流量统计数据(每天大约 25,000 名访问者)。服务器没有太多 ram,2gigs,甚至 cpu 也不是很快(Core 2 duo 1.8Ghz),但服务器有足够的存储空间:raid 0 配置中的 10Tb(sata)。服务器所做的工作很简单:

我们的比价器上的每个产品都有一个图像(根据我们的产品数据库,大约有 1000 万个产品),服务器的工作是下载图像,调整它的大小,将其存储在 gridfs 上,然后将其交付给访问者浏览器...如果它不存在于网格中...或者...如果它已经存储在网格中,则将其传递给访问者浏览器。因此,这可以称为“传统 cdn 架构”。

自该服务器启动并运行以来,我们已在该服务器上存储和处理了 400 万张图像。调整大小和存储的东西是由一个简单的 php 脚本完成的……但可以肯定的是,python 脚本或类似 java 的东西可能会更快。

当前数据大小:11.23g

当前存储大小:12.5g

指数:5

索引大小:849.65m

关于可靠性:这是非常可靠的。服务器不加载,索引大小还可以,查询很快

关于速度:当然,它不如本地文件存储快,可能慢 10%,但足够快,即使在需要处理图像时也可以实时使用,在我们的例子中,非常依赖于 php .维护和开发时间也减少了:删除单个或多个图像变得如此简单:只需使用简单的删除命令查询数据库。另一个有趣的事情:当我们重新启动我们的旧服务器时,使用本地文件存储(数千个文件夹中的数百万个文件),它有时会挂起几个小时,因为系统正在执行文件完整性检查(这真的需要几个小时......)。 gridfs 不再有这个问题,我们的图像现在存储在大 mongodb block 中(2gb 文件)

所以...在我看来...是的,gridfs 足够快速和可靠,可以用于生产。

https://stackoverflow.com/questions/3413115/

相关文章:

mongodb - 未指定排序顺序时,MongoDB 如何对记录进行排序?

javascript - Mongoose .js : Find user by username

python - 用于 Python 的 MongoDB ORM?

mongodb - MongoDB 中 Multi-Tenancy 数据库的推荐方法是什么?

mongodb - 如何在 MongoDB 中将集合导出到 CSV?

mongodb - 值不为空的 Mongoose 查询

mongodb - 在 MongoDB 中查找重复记录

ruby - Mongoid 还是 MongoMapper?

mongodb - 为什么 Mongoose 既有模式又有模型?

MongoDB GPG - 无效签名