教义在phpMyAdmin中很长时间



我正在使用带有教义(2.5(的symfony。我选择了(取自Symfony Profiler->doctrine->query->view runnalbe query(。通过phpMyAdmin或通过doctrine(同时(在网络上需要~200ms。

SELECT col1, col2 ... col 12, MIN(t0_.price) AS sclr_24 
FROM tablo t0_ 
WHERE t0_.visible = (1) AND t0_.status <> (0) AND t0_.price IS NOT NULL 
GROUP BY t0_.kat_id 
ORDER BY t0_.hotel ASC;

但是如果我从 php 中删除orderBy - doctrine 将生成此查询:(与以前相同,但没有orderBy(

SELECT col1, col2 ... col 12, MIN(t0_.price) AS sclr_24 
FROM tablo t0_ 
WHERE t0_.visible = (1) AND t0_.status <> (0) AND t0_.price IS NOT NULL 
GROUP BY t0_.kat_id;
这个查询

需要的时间几乎是以前的查询,但只有在网络上通过原则,如果我复制这个查询并粘贴到 phpMyAdmin,它花费的时间会少很多(~20 毫秒(。

有人可以解释我为什么吗?或者我必须更改什么才能与phpMyAdmin中的时间相同?

更新:存储库中的代码:

$query = $repository
   ->createQueryBuilder('t')
   ->select('t.col1', 't.col2' .... 't.col12', 'MIN(t.price) AS price');
$query->where('t.visible = (:visible)')->setParameter('visible', 1);
$query->andWhere('t.status!= (:status)')->setParameter('splneno', 0);
$query->andWhere('t.priceis not null');
$query->groupBy('t.katId');
$result = $query->getQuery()->getArrayResult();

"phpMyAdmin"中显示的执行时间是查询在服务器上运行所花费的时间 - 它是准确的,并且来自MySQL引擎本身。

不幸的是,结果必须通过网络发送到您的浏览器才能显示,这需要更长的时间。"Doctrine2"是ORM,在包装器和其他东西方面有更多的开销。

此查询是从存储库运行的?实体如何链接到此存储库?如果在存储库外部运行它,时间是否还相同?

相关内容

  • 没有找到相关文章

最新更新