我的具体情况
物业管理的网站,用户可以上传照片和租赁文件。 对于每一个公寓单位,有可能是4张照片,所以不会有照片的系统的数量相当多。
对于照片,将有各自的缩略图。
我的问题
我的首要任务是性能。 对于最终用户,我想加载页面,并显示图像尽可能快。
我应该将图像存储在数据库或文件系统中,或者没有关系? 我是否需要进行缓存什么?
提前致谢!
我的具体情况
物业管理的网站,用户可以上传照片和租赁文件。 对于每一个公寓单位,有可能是4张照片,所以不会有照片的系统的数量相当多。
对于照片,将有各自的缩略图。
我的问题
我的首要任务是性能。 对于最终用户,我想加载页面,并显示图像尽可能快。
我应该将图像存储在数据库或文件系统中,或者没有关系? 我是否需要进行缓存什么?
提前致谢!
虽然也有例外的一切,一般情况下是在文件系统中存储的图像是你最好的选择。 您可以轻松地将图像提供缓存服务,您无需担心额外的代码来处理图像处理,并在必要时通过标准的图像编辑方法,你可以很容易做到在图像上的维护。
这听起来像你的商业模式非常适合在这种情况下。
文件系统。 没有比赛。 数据要经过很多层以上,当你把它存储在数据库中。
编辑在缓存:如果你希望缓存的文件,而用户上传,以确保操作尽快完成,直接到磁盘(例如文件系统),为之倾倒大约是快,因为它得到。 只要文件不是太大,你不要有太多的并发用户,你可以“缓存”内存中的文件,返回给用户,然后保存到磁盘。 说实话,我不会理会。
如果你正在网络上可用的文件,他们已上载并希望缓存以提高性能后,文件系统仍然是最好的选择。 你会得到缓存免费(可能需要调整设置或两个)从您的Web服务器。 你不会得到这个如果文件在数据库中。
毕竟,它听起来就像你永远不应该存储在数据库中的文件。 不是这样的,你只需要一个很好的理由这样做。
当然在文件系统中的图像存储。 在考虑这类事情时,人并没有足够考虑的一个问题是臃肿; 临时抱佛脚图像作为二进制斑点到你的数据库是臃肿的DB方式了一个非常快速的方法。 随着大型数据库自带的硬件要求较高,更难以复制和备份要求等文件系统上的坚持您的图像意味着你可以将它们备份与许多现有的工具/复制它们容易和简单。 存储空间更容易增加对文件系统比数据库,以及。
评论到Sheepy的答案。
在SQL常用的存储文件是更好,当文件大小小于256千字节,值得当它大于1兆字节。 所以256-1024千字节之间这取决于几个因素。 阅读这个详细了解原因使用SQL或文件系统。
一个DB 可能比在某些操作的文件系统更快,但加载KB的数据100S的明确确定块是不是其中之一。
同时,良好的前端Web服务器(如nginx的)比你必须写读从DB斑任何Web应用层的方式更快。 在一些测试nginx的大致与分布式缓存为服务中型文件(如大HTMLS或中型的图像)的原始数据相提并论。
去FS。 没有比赛。
也许有轻微的切线,但在这个从MySQL大会上,有关网站如何演示视频会谈SmugMug的使用MySQL和其他各种技术的卓越性能。 我认为视频是建立在一些张贴在这里的答案,但也建议提高DB的范围之外的网站性能的方法。