【发布时间】:2015-06-17 00:32:46
【问题描述】:
在 symfony2 中,我有一个触发错误的查询:
Error "1038 Out of sort memory, consider increasing server sort buffer size
查询:
$queryBuilder = $this
->createQueryBuilder('object')
->leftJoin('object.objectCategory', 'c')
->leftJoin('object.medias', 'm')
->leftJoin('object.recipients', 'r')
->leftJoin('object.answers', 'a')
->leftJoin('object.tags', 't')
->leftJoin('object.user', 'u')
->leftJoin('object.votes', 'v')
->leftJoin('object.comments', 'comments')
->leftJoin('v.user', 'vuser')
->addSelect('c, t, v, u')
->groupBy('object, c, t, v, u')
->where('object.isVisible = :isVisible')
->orderBy('object.createdAt', 'DESC')
->setParameter('isVisible', true)
->addSelect('SUM(v.value) AS HIDDEN vote_value')
->orderBy('vote_value', 'DESC')
;
如果我省略 group by,它运行得很好。 如果我添加 select 和 group by less 元素,它也运行良好,但是我在我的 twig 模板中启动了更多子查询。
如何优化此查询以使其不出现错误或通过分配更多内存(理想情况下仅用于此查询)来消除错误?
【问题讨论】:
-
好吧,我通过从 addselect 中删除用户来解决这个问题。它没有影响查询的数量。下面的答案也应该没问题。
标签: mysql sql symfony doctrine-orm