错误"1038内存不足,请考虑增加排序缓冲区大小 [英] Error "1038 Out of sort memory, consider increasing sort buffer size

查看:778
本文介绍了错误"1038内存不足,请考虑增加排序缓冲区大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在symfony2(教义2)中,我有一个查询会触发错误:

In symfony2, doctrine2, I have a query which triggers an error :

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')
    ;

如果我省略分组依据,它运行得很好. 如果我添加select和group by较少的元素,它也可以正常运行,但是在我的树枝模板中启动了更多的子查询.

If I omit the group by, it runs just fine. If I add select and group by less elements, it runs fine also but then I have more subqueries launched in my twig templates.

我该如何优化该查询以使其不出现错误,或者通过分配更多内存(理想情况下仅用于此查询)来消除该错误?

How can I either optimize this query to not have the error OR get rid of the error by allocating more memory (ideally just for this query) ?

推荐答案

您可能需要在/etc/mysql/my.cnf中设置

sort_buffer_size to 256K

这篇关于错误"1038内存不足,请考虑增加排序缓冲区大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆