【发布时间】:2014-01-13 09:43:48
【问题描述】:
我的网站有很多图片,例如用户的徽标、产品的徽标/图片或公司的徽标/图片。
现在,我将这些徽标或图像名称存储在 MySQL 中。如果我想知道一个用户的标志,我必须查询mysql,找到标志。就像这样:
<img src="{{FileManager::getFile('user_logo',$loop->photo)}}" />
问题是,我的网站正在发展并变得越来越大。假设,我有一个页面,它将显示用户信息(用户名、用户年龄...用户徽标)。
我必须查询 MySQL 才能找到他们的徽标。每次,这将花费大量时间等待页面加载用户的徽标。我想知道如何加快加载徽标/图像的速度?
我正在使用 Laravel 4 和这个服务器规范:
- 阿帕奇
- PHP 5.4
- MySQL 5.5
- Redis 2.6
【问题讨论】:
-
"现在,我将这些徽标或图像 name 存储在 mysql 中,..."
-
@JoachimIsaksson 是的,只是将图像名称存储在 mysql 中,文件本身存储在文件系统中。
-
看起来缓存没有启用/在图像上运行良好,至少之前应该下载 200 个,不是吗?如果您使用 md5 命名图像,您应该能够将缓存设置为永不过期图像,因为它永远不会在不更改文件名的情况下更改。
-
@JoachimIsaksson 谢谢,我不太熟悉如何在应用服务器上打开或配置缓存。哦,我正在使用 apache。
-
@diligent 试试看here。仅为更改内容的图像设置较长的缓存时间(例如,如果更改内容,则更改名称的 md5 文件非常适合永久缓存),但即使是 10 分钟的超时也对图像有很大帮助包含在每个/许多页面加载中。
标签: php html image web storage