保持缓存内容的实时视图

时间:2010-06-20 23:13:47

标签: php mysql caching views real-time

我正在一个繁忙的网站上工作。有时它会获得更多的流量,然后是平均天数。内容被缓存,但由于网站所有者想要查看实时帖子视图,每个帖子视图必须至少对MySQL进行一次查询,这在重负荷下会成为性能问题。

我能想到的是为视图创建一个不同的表,并使用cron作业定期更新原始表。我相信这会缩短更新时间,但我不确定这是否是最佳方式。

1 个答案:

答案 0 :(得分:0)

那么,至于你的问题,有三个选择:

  1. 请勿缓存该特定信息。但是根据你的描述,听起来你已经这样做了,而且还没有成功。

  2. 使用直写缓存。每当您“添加”或“删除”帖子时,也会生成该项目的缓存数据。这可能很难取决于您的缓存系统的工作方式,但这是一个选项。

  3. 写入时缓存无效。每当“添加”或“删除”帖子时,请删除这些帖子的缓存数据。这样,在下一次从缓存请求这些缓存时,将填充缓存。这可能是也可能不容易,因为检测哪些缓存项引用db节点可能并不容易(可能需要添加更多信息,或元缓存对象以跟踪此数据)。

  4. 现在,说到这一点,我发现一个查询正在成为一个性能问题有点奇怪。更有可能的是,需要优化一个查询,或者需要优化MySQL服务器。我经常在一些生产服务器上看到每秒超过5k次查询,并且没有加载问题。那是因为那些查询非常有效,我在MySQL中启用了Query Caching(它比你想象的更有效)......