Doctrine2 dbal缓存子查询

时间:2012-10-17 18:26:45

标签: sql symfony doctrine-orm dbal

我有一个非常昂贵的子查询,我在我的存储库中用于多个查询。

我想找到一种方法来缓存该子查询,并在其他本机SQL查询中使用它的结果。

  1. 我在symfony2项目中使用Doctrine2 DBAL。
  2. 由于子查询的复杂性,需要本机SQL。
  3. example:
    
    select sum(volume) from ( expensive_subquery );
    

    我一直在审核Google和Doctrine2文档,但在这里找不到一个好的解决方案。

    欢迎其他方法,保持在Doctrine2,Symfony2,SQL框架的范围内。

1 个答案:

答案 0 :(得分:0)

你有很多选择。我的第一行动作是将select语句散列为一个键,并将结果存储在memcached或类似的东西中。然后在您的经理中运行查询。检查密钥/缓存是否存在..如果存在,请使用缓存的结果。如果缓存不存在,请在长查询运行后创建它。此外,您可能希望集成缓存过期。