上传和下载图像到MongoDB比在磁盘上更快

Sir*_*tbi 11 php file-upload mongodb

假设我们想开发一个照片网站.

从MongoDB上传或下载图像比从磁盘存储或下载图像更快......因为mongoDB可以以块的形式保存图像和文件并保存元数据.

因此,对于照片共享网站,将图像存储在mongodb或典型的服务器硬盘上会更好(更快).等等

我想使用PHP,codeigniter btw,如果这改变了有关问题的性能问题.

Kar*_*ath 8

轻量级Web服务器(lighttpd,nginx)可以很好地为文件系统中的内容提供服务.由于OS充当缓存层,因此它们通常从内存中提供非常快速的内容.

如果你想从mongodb提供图像,那么web服务器必须运行某种脚本(python,php,ruby ......当然是FCGI,你不能为每个图像启动一个新的进程),它必须从中获取数据每次请求图像时都要使用mongodb.那会慢吗?如果使用副本集,则可以实现自动复制和故障转移.如果你需要这个并且聪明到足以知道用FS实现它,那么选择那个选项...如果你需要一个非常快速的实现,那么mongodb可能是一个更快的方法.但是,如果您的网站迟早会流行,您必须切换到FS实施.

顺便说一句:你可以混合使用这两种方法,将图像存储在mongodb中以获得即时可靠性,然后将其复制到几台服务器的FS中以提高速度.

一些测试结果.

哦,还有一件事......将元数据与图像耦合似乎很不错,直到您意识到生成的HTML并且图像下载将成为两个单独的HTTP请求,因此您必须两次查询mongo,一次查询元数据,一次查询图片.


Tak*_*Tak 3

何时使用 GridFS 与 MongoDB 一起存储文件- 该文档建议您应该这样做。它听起来也快速可靠,非常适合备份和复制。希望有帮助。