缓存Doctrine结果Symfony2

Tom*_*azi 9 php symfony doctrine-orm

我正在研究Symfony2项目.我的项目使用数据库来存储数据,使用Doctrine2来检索数据.

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

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

Tom*_*ski 17

您需要在doctrine 配置中安装和配置缓存驱动程序(result_cache_driver在您的情况下很重要).完成此操作后,您可以Doctrine通过设置来使用结果缓存useResultCache(true)

$cachedResult = $doctrine->getManager()
    ->createQueryBuilder()
    ->(...)
    ->useResultCache(true)
    ->(...)
Run Code Online (Sandbox Code Playgroud)

查看此博客文章

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

编辑:当您使用DBAL而不使用时ORM- SymfonyDoctrineBundle不支持开箱即用的此类缓存,但您可以按照详细指南自行添加此支持