我有一个非常昂贵的子查询,用于我的存储库中的多个查询。
我想找到一种缓存该子查询的方法,并在其他本机SQL查询中使用它的结果。
- 我正在使用Symfony2项目中的Doctrine2 dbal。
- 由于子查询的复杂性,需要本机SQL。
例子:从(昂贵的_subquery)选择" sum(卷)";
我一直在审查Google和Doctrine2文档,但在这里没有找到一个好的解决方案。
欢迎其他方法,留在Doctrine2,Symfony2,SQL Framework的范围内。
您有很多选择。我的第一个行动是哈希选择键,以充当钥匙,并将结果存储在模因或类似的方法中。然后在您运行查询之前在您的经理中。检查键/缓存是否存在。.如果确实存在,请使用缓存的结果。如果缓存不存在,请在长时间查询后创建它。此外,您可能需要集成缓存到期。