2

最近我尝试将图像存储在 Mysql 数据库中(使用 BLOB 数据类型),使用 php 和 web 上传和存储它。它工作正常,除非加载足够大的图像,否则加载速度会非常慢。有什么方法可以更快地加载此图像?

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

提前致谢

4

4 回答 4

2

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

于 2012-12-14T13:47:52.247 回答
1

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

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

我建议将图像存储在文件系统上,以便它们可以被浏览器缓存,或者您甚至可以在 Apache 服务器上设置一个内存缓存,以便在过期之前从缓存中提供它们。

于 2012-12-14T13:50:16.130 回答
0

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

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

这就是您在几乎所有 Web 应用程序中都会发现的内容。

于 2012-12-14T13:47:37.007 回答
0

我猜缓存可能好也可能不好。而不是我建议您将图像或其他文件上传到文件夹并仅将有关文件的信息保存在数据库中:名称、类型、大小、文件夹等......

于 2012-12-14T13:45:12.327 回答