减少symfony2数据库请求

时间:2014-03-18 13:25:37

标签: php symfony caching doctrine-orm

我正在使用Symfony2.4开发一个网站,该网站存储了一些"半静态"数据库中的信息(例如地址,电话,社交媒体网址等),以允许客户端通过后端修改该数据。

该网站运行正常,但我认为应该通过某种方式减少对数据库的访问,以便为每个请求检索这些数据(因为所有页面都会打印出来)。

有没有办法缓存这些数据?一个好的做法是在第一次进入网站时将其存储在用户会话中吗?

感谢。

1 个答案:

答案 0 :(得分:1)

例如,您应该使用APC。 假设您已安装并启用php-apc扩展程序(可以在phpinfo中查看),这就是您需要做的全部内容:

config_prod.yml中(您不希望在dev环境中缓存结果)

doctrine:
    orm:
        metadata_cache_driver: apc
        result_cache_driver: apc
        query_cache_driver: apc

然后在您的查询中:

$queryBuilder
    (...)
    ->useQueryCache(true)
    ->useResultCache(true)
    (...)

首次进行此查询时,它将从数据库中获取数据。下次它将从缓存中获取数据。您还可以设置缓存的生命周期:example

编辑:上面的链接是symfony 1.x文档,但useQueryCacheuseResultCache的使用在symfony 1.x和Symfony2.x中是相同的。

有关Symfony2 Doctrine配置的更大文档检查this链接为@Francesco Casula提到