缓存MySQL查询

时间:2020-03-05 18:45:45  来源:igfitidea点击:

有没有一种简单的方法可以在PHP中缓存MySQL查询,或者失败了,有人编写并提供了一个小型的类集来做到这一点吗?我可以缓存整个页面,但是由于某些数据更改而不能工作,但是有些不能,所以我想缓存不起作用的部分。

解决方案

回答

这是有关如何在MySQL中缓存查询的很好的概述:

  • MySQL查询缓存

回答

我认为查询缓存大小默认为0,这是关闭的。
编辑my.cnf文件,使其至少有几兆字节。
无需更改PHP :)

回答

对于我们尝试的操作,这可能完全是矫over过正,但请查看eAccelerator或者内存缓存。如果查询会定期更改而查询不会更改,则我们可能不希望mysql将所有数据库查询缓存相同的时间长度。

像上面的缓存引擎,我们可以逐个查询地决定将数据缓存多长时间。因此,假设标头中的数据很少更改,可以检查是否当前在缓存中,如果是,则将其返回,否则执行查询,并将其放入缓存中,其生存期为N,因此对于下一个N每页加载几秒钟将在不接近MySQL的情况下从缓存中提取数据。
然后,我们可以根据需要在绕过缓存的情况下从数据库中"实时"获取其他数据。

回答

我们可以使用Zend Cache来缓存查询的结果。

回答

我会建议整个页面缓存路线。如果某些数据发生更改,只需将令牌/占位符放置在动态数据位置即可。使用这些标记就可以缓存整个页面,然后对标记的缓存数据进行标记后处理。因此,我们现在有了一个包含动态内容的缓存页面。