缓存学说结果 Symfony2 [英] Caching Doctrine results Symfony2

查看:28
本文介绍了缓存学说结果 Symfony2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个 Symfony2 项目.我的项目使用数据库来存储数据和 Doctrine2 来检索该数据.

I am working on a Symfony2 project. My project uses database to store the data and Doctrine2 to retrieve that data.

随着数据库中数据的增长,查询变得非常缓慢,整个 Web 应用程序需要大约 2 分钟才能加载或根本不加载.

As the data within the database has grown the queries became very slow and the whole web app takes about 2 mins to load or does not load at all.

我可以看到自己修复此问题的唯一方法是缓存一些查询结果,但我该怎么做.除非有不同的处理方式.

The only way I can see my self fixing this is to cache some queries results but how can I do that. Unless there is different way of dealing with such issue.

推荐答案

您需要安装并配置您的缓存驱动程序 configuration(result_cache_driver 对你来说很重要).完成此操作后,您可以通过设置 useResultCache(true)

You need to have your cache driver installed and configured in doctrine configuration (result_cache_driver is important in your case). Once you have this done you can make Doctrine to use result cache by setting useResultCache(true)

$cachedResult = $doctrine->getManager()
    ->createQueryBuilder()
    ->(...)
    ->useResultCache(true)
    ->(...)

查看这篇博文

注意:默认情况下,在开发环境中,不会使用结果缓存

NOTE: by default, in dev environment, result cache won't be used

EDIT:因为您使用的是 DBAL 而不是使用 ORM - SymfonyDoctrineBundle 不支持这种开箱即用的缓存,但您可以按照 自己添加此支持这个详细指南

EDIT: as you're using DBAL and not using ORM - SymfonyDoctrineBundle doesn't support this kind of cache out of the box, but you can add this support by yourself by following this detailed guide

这篇关于缓存学说结果 Symfony2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆