mysql 1038,错误“ 1038内存不足,请考虑增加排序缓冲区大小

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

Error "1038 Out of sort memory, consider increasing server sort buffer size

The query :

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

;

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) ?

解决方案

You probably need to increase the buffer size of mysql in the /etc/mysql/my.cnf , set

sort_buffer_size to 256K

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值