使用group_concat()选择MariaDB-内存不足

zzoitvuj  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(228)

我们有安装了mariadb的centos 7机器。
当我跑步时:

SELECT h.id,
       h.name,
       group_concat(distinct d.name ORDER BY d.name SEPARATOR " ") AS descriptions 
FROM inventar h 
LEFT JOIN descriptions d ON(FIND_IN_SET(d.id, h.description_id) > 0) GROUP BY h.id,h.description_id 
ORDER BY h.name asc;

错误5(HY000):内存不足(需要65535816字节)
我读到它可能限制了临时表的大小。
我检查了尺寸:
MariaDB [wexac_hosts]〉显示像" % table_size %"这样的变量;
| 变量_名称|价值|
| - ------| - ------|
| 最大堆表大小|小行星1048576|
| 临时磁盘表大小|小行星18446744073709551615|
| 临时内存表大小|小行星12572426240|
| 临时表大小|小行星12572426240|
它比65535816字节大。
我应该增加哪个mariadb变量?

cqoc49vn

cqoc49vn1#

如果GROUP_CONCAT内存不足,则需要增加group_concat_max_len
GROUP_CONCAT文档中:
返回的最大长度(以字节为单位)由group_concat_max_len服务器系统变量确定,默认值为1M(〉= MariaDB 10.2.4)或1K(〈= MariaDB 10.2.3)。

相关问题