如何更快地从Mysql加载图像?

时间:2012-12-14 13:40:08

标签: php html mysql

最近我试图将图像存储在Mysql数据库中(使用BLOB数据类型),使用php和web上传和存储它。它工作正常,除非加载足够大的图像,它将加载非常缓慢。有没有办法更快地加载这个图像?

注意:我的朋友建议我对此图像使用强制缓存(他说有关更改图像的内容标题的内容),但我不知道该怎么做。我怀疑它会带来更好的性能。

提前致谢

4 个答案:

答案 0 :(得分:2)

绝对应该缓存图像。我认为这可以通过确保您制作的图像网址对于同一图片始终相同来完成。我认为你的问题是你需要更改max_allowed_pa​​cket。如果这个太小,它将无法一次通过网络发送大量数据。此外,如果图片真的那么大,我也会考虑将图片的质量改为70%?所有调整大小的图像功能都有办法改变它。即:http://php.net/manual/en/function.imagejpeg.php。希望有所帮助。我也会研究YSlow。它将帮助指出图像的确切错误,使其加载缓慢。无论是质量,缓存,压缩还是w / e都可能。

答案 1 :(得分:1)

当存储在文件系统上的图像时,可以使用缓存图像。如果它们是从数据库中动态弹出和打印的,那么每次PHP代码要求它们都会被提取。

可能是在几十毫秒内获取图像,但是3MB图像数据可以下载到客户端浏览器5秒到1分钟(取决于连接速度)。与它没有太大关系(在共同的共享主机上更少)。

我建议将图像存储在文件系统中,以便它们可以被浏览器缓存,或者你甚至可以在Apache服务器上设置一个memcache,直到它们到期为止,它们将从缓存中提供。

答案 2 :(得分:0)

我想缓存可能是好的与否。而不是我建议你上传图像或其他文件到文件夹,并在DB上保存有关文件的信息:名称,类型,大小,文件夹等......

答案 3 :(得分:0)

如果您没有任何要求您将图像存储在数据库中的必备条件,则图像在文件夹中更好,您应该在数据库中存储的是每个图像的路径或名称。

这会使它们正常加载。当然,仅取决于图像的大小。

这就是您在几乎所有Web应用程序中都能找到的内容。