微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – 在Mongo数据库中存储图像文件,这是一个好主意吗?

使用mysql时,将图像作为BLOB存储在数据库中是一个坏主意,因为它会使数据库非常大,这对正常使用数据库是有害的.然后,最好将图像文件保存在磁盘上并保存数据库中的链接.

但是,我认为这与MongoDB不同,因为增加数据库文件大小对性能的影响可以忽略不计(这就是MongoDB可以成功处理数十亿条记录的原因).

您认为最好将图像文件保存在MongoDB(作为GridFS)以减少存储在服务器上的文件数量;或者最好保持数据库尽可能小?

解决方法:

问题不在于数据库变大,数据库可以处理(虽然MongoDB在这方面不如许多其他的好).问题是,要将数据发送到客户端,它首先必须由数据库移动到RAM中,然后复制到应用程序的内存中,然后传递给内核以通过套接字发送.它浪费了大量的RAM和cpu周期.在文件系统中拥有大文件最好的原因是它可以更容易地复制它,你可以要求内核直接将文件从磁盘流式传输到套接字.

文件系统中存储大文件的缺点是分发起来要困难得多.使用数据库和Mongo的GridFS之类的东西可以扩展.您只需要确保不要立即将整个文件复制到应用程序的内存中,而是一次复制一个块.现在,大多数Web应用程序框架都支持发送分块HTTP响应.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐