更新后刷新缓慢(Doctrine ORM + Symfony 2)

时间:2014-10-20 09:58:02

标签: symfony orm doctrine-orm redis flush

我使用的是Symfony 2.3和Doctrine ORM 2.4。 更新 Symfony到2.6和Doctrine ORM到2.5后,刷新操作非常慢。我发现问题出在computeChangeSets()中的UnitOfWork函数中。 在生产系统上,我使用redis进行学说缓存,我也得到了错误RedisException "Redis server went away"。如果我在登录控制台检查redis服务器正在运行。

我在config.yml中的开发设置:

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver:         %database_driver%
                driver_class:   %database_driver_class%
                host:           %database_host%
                port:           %database_port%
                dbname:         %database_name%
                user:           %database_user%
                password:       %database_password%
                options:        %database_options%
            admin:
                driver:         pdo_pgsql
                host:           %database_host%
                port:           %database_port%
                dbname:         %database_name%
                user:           %database_user%
                password:       %database_password%
                options:        %database_options%
     orm:
        auto_generate_proxy_classes: %kernel.debug%
        default_entity_manager: default
            default:
                entity_listener_resolver: %entity_listener_resolver%
            admin:
                connection: admin

生产:

doctrine:
    orm:
        entity_managers:
            default:
                metadata_cache_driver:  redis
                query_cache_driver:     redis

1 个答案:

答案 0 :(得分:0)

这是解密中的问题。我们对数据库中的一些数据使用enycription。因此,当调用EventListener时发生解密时,它确实会减慢进程。为了解决这个问题,我们没有通过实体获取数据(但是作为数组),因此事件监听器没有被调用。

PS:工作缓慢与升级无关。

PS2:仍然存在Redis问题。