我在应用程序开发中有点新鲜。我现在正在开发一个应用程序,我想知道你作为一个新手所面临的问题的有价值的意见。高效的PHP缓存策略?
说到缓存,我应该在缓存中添加哪些应用程序部分?让我给你举个例子,我在做什么:
我正在为我的用户开发一个图片共享应用程序,并且我创建了一个缓存机制来缓存每个用户的数据,他的相册&他的照片。我现在有每页(仅在情况下,它是不是已经存储在缓存),例如1个查询:
if (!$ItemNotInCache)
{
$MyData = $DB->Query('blah');
Cache::CacheIt($MyData);
}
这是关于每个结果我得到,我想不是每次调用过多查询用户请求页面,这是否有效?问题是,你能明白我必须建立这个庞大的机构来操作数组所有这些数据,等等。
当用户删除从DB的形象,我不得不删除从索引他的专辑的缓存数据也是如此。
当用户将图像添加到数据库时,我使用array_merge将此项插入到他的缓存数据中,依此类推。
我的一个朋友告诉我,因为我的数据是动态的,我不应该滥用缓存,它会经常改变,他还告诉我这是为什么MySQL是对。我的问题是我应该用这种方式使用缓存还是不使用?正如你所理解的那样,数据是动态的,它应该经常刷新。这是有效的,或者我应该坚持MySQL查询?
MySQL实现了自己的重要缓存 - 如果您缓存查询的结果,那么您会将缓存翻倍。你的朋友可能是对的。 “可能”是因为每个系统都不同,而且这里没有足够的信息。要确定,你需要分析你的应用程序,并在那些对性能影响最大的领域工作 – 2013-08-04 21:02:11
@MikeW True,但是数据库调用/数据传输仍然存在开销,这可能在高流量站点上被证明是非常重要的。这也假定MySQL有足够的内存,等等。 –
@middaparka对于低流量的网站,努力可能会超过收益。我们无法从他在这里发布的信息中分辨出来。正如我所说 - OP需要描述他的应用程序。 – 2013-08-04 21:17:38