我有一个非常昂贵的子查询,我在我的存储库中用于多个查询。
我想找到一种方法来缓存该子查询,并在其他本机SQL查询中使用它的结果。
example: select sum(volume) from ( expensive_subquery );
我一直在审核Google和Doctrine2文档,但在这里找不到一个好的解决方案。
欢迎其他方法,保持在Doctrine2,Symfony2,SQL框架的范围内。
答案 0 :(得分:0)
你有很多选择。我的第一行动作是将select语句散列为一个键,并将结果存储在memcached或类似的东西中。然后在您的经理中运行查询。检查密钥/缓存是否存在..如果存在,请使用缓存的结果。如果缓存不存在,请在长查询运行后创建它。此外,您可能希望集成缓存过期。