4

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

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

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

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

这些理由听起来有道理吗,还是我应该朝着不同的方向发展?

4

1 回答 1

5

它并不完全正确。

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

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

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

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

于 2012-01-09T16:05:26.773 回答