【问题标题】:Storing Images in the MongoDB GridFS在 MongoDB GridFS 中存储图像
【发布时间】:2012-02-06 03:29:17
【问题描述】:

我正在讨论将图像存储在 Mongo GridFS 或云文件系统中。由于几个原因,我倾向于云。使用的语言是 Nginx 服务器上的 PHP。

  1. 在 GridFS 中存储图像会增加数据库的大小。因此,更多的数据库必须在内存中,当涉及到分片之类的事情时,我将花费更多的时间/金钱来管理服务器。

  2. 从 GridFS 检索图像需要的时间比云要长,因为我必须这样做 a) 使用id查询图片 b) 将图像读入内存 c) 使用 php 标头显示图像

云会更好,因为它是直接指向云的图像的 url。

这些理由听起来有道理吗,还是我应该换个方向思考?

【问题讨论】:

    标签: php mongodb image-processing cloud gridfs


    【解决方案1】:

    这并不完全正确。

    在 GridFS 中存储图像会增加数据库的大小。 因此,更多的数据库必须在内存中,我将花费 当涉及到诸如此类的事情时,需要更多的时间/金钱来管理服务器 分片。

    Mongodb gridfs 将大文件分割成块,只有在请求时才会加载和服务(由每个块)。是的,它肯定会比文件系统占用更多的内存。这些都是使用内存数据存储时的权衡。

    从 GridFS 检索图像需要的时间比云要长,因为我 必须 a) 使用 id 查询图像 b) 将图像读入内存 c) 使用 php 标头显示图像

    正如我在前一点中所说,它将在第一时间加载到内存中。所以你不会有太多的性能问题,事实上这将是一个收获,因为它是从 RAM 而不是磁盘提供的。但如果你仍然不满意,我建议将图像缓存在 nginx 中。所以它不会在第一个之后来到 mongo。

    【讨论】:

    • '从 RAM 提供'。我已经将来自正常集合的信息存储在 RAM 中,而不是网格的一部分。在 RAM 中存储更多信息会降低服务器的性能。假设您处理 1000 张图像,内存只有这么多。将其存储在云服务器上并缓存在客户端浏览器上似乎仍然更好。我错了吗?
    猜你喜欢
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2021-07-29
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多