加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在MongoDB GridFS中存储图像

发布时间:2020-12-13 17:10:21 所属栏目:PHP教程 来源:网络整理
导读:我正在讨论将图像存储在Mongo GridFS或云文件系统中.由于一些原因,我倾向于云.使用的语言是Nginx服务器上的 PHP. 在GridFS中存储图像会增加数据库的大小.因此,更多的数据库必须在内存中,当涉及到分片等事情时,我将花费更多的时间/金钱来管理服务器. 从GridFS
我正在讨论将图像存储在Mongo GridFS或云文件系统中.由于一些原因,我倾向于云.使用的语言是Nginx服务器上的 PHP.

>在GridFS中存储图像会增加数据库的大小.因此,更多的数据库必须在内存中,当涉及到分片等事情时,我将花费更多的时间/金钱来管理服务器.
>从GridFS中检索图像需要比云更长的时间,因为我必须这样做
????a)使用id查询图像
????b)将图像读入内存
????c)使用php标头显示图像

云会更好,因为它的图像直接映射到云端.

这些理由是否合理,或者我是否应该按照自己的想法朝着不同的方向前进?

解决方法

它并非完全正确.

Storing images in the GridFS increases the size of the database.
Therefore more of the database has to be in memory and I will spend
more time/money managing the servers when it comes to things like
sharding.

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

Retrieving the image from GridFS takes longer than cloud because I
have to a) Query the image using the id b) read the image into memory
c) use a php header to display the image

正如我在之前的观点中所述,它将在第一时间被加载到内存中.所以你不会遇到太多的性能问题,因为它从RAM而不是磁盘服务,它将是一个增益.但如果你还不满意,我会建议在nginx中缓存图像.所以它不会在第一个之后来到mongo.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读