2

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

我想找到一种方法来缓存该子查询并将其结果用于其他本机 sql 查询。

  1. 我在 symfony2 项目中使用 Doctrine2 DBAL。
  2. 由于子查询的复杂性,需要使用本机 SQL。
例子:

从(昂贵的子查询)中选择总和(体积);

我一直在查看 Google 和 Doctrine2 文档,但在这里没有找到好的解决方案。

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

4

1 回答 1

0

你有很多选择。我的第一行是对 select 语句进行哈希处理以充当键并将结果存储在 memcached 或类似的东西中。然后在您的经理中运行查询之前。检查键/缓存是否存在。如果存在,请使用缓存结果。如果缓存不存在,请在长查询运行后创建它。此外,您可能希望集成缓存过期。

于 2012-11-28T05:41:58.923 回答