doctrine2多查询VS连接

时间:2014-11-22 19:15:10

标签: mysql symfony doctrine

只是感兴趣,也许有人可能知道。如果我使用延迟加载来获取所有属性,关系等,它会对数据库进行~350次查询,完全呈现页面大约需要2秒。如果我使用多个连接创建一个大查询来获取我需要的所有关系它会使~20个查询之一非常大,问题是这个大查询第一次执行需要大约10秒,之后它会被缓存并且会变得很多更快,整个页面加载时间约为1.5秒,但问题是每个用户都有不同的查询参数,所以对于每个用户第一次进行10秒......为什么第一次这么长时间?

2 个答案:

答案 0 :(得分:0)

如果您使用的是存储过程,我可以问一下吗?我添加了一个链接,其中包含使用存储过程https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64686/01_intr3.htm的一些优点。您能为不同的用户提供一些参数示例吗?

由于

答案 1 :(得分:0)

由于您没有提供有关数据库架构,数据大小和其他参数的信息,因此很难确定性能不佳的根本原因。但是,StackOverflow上有another answer可能是进一步调查的一个很好的起点。

一般情况下,请考虑以下问题开始调查/优化:

  • 真的是否需要从数据库中提取的所有信息(一次性)?
  • 数据库是否针对您执行的查询进行了优化?
  • 您需要多久执行一次查询,如果缓存它们,缓存过期的频率是多少?