Ubuntu 12.04上的MySQL 5.5.28
如果结果长于该时间,group_concat_max_len
则结果将被优雅地截断。
当前,我有一个脚本,该脚本试图提前检查所需的长度并将其设置group_concat_max_len
为足够大。
但是检查增加了额外的查询。设置group_concat_max_len
为最大值有什么弊端?好处是更少的查询。
Ubuntu 12.04上的MySQL 5.5.28
如果结果长于该时间,group_concat_max_len
则结果将被优雅地截断。
当前,我有一个脚本,该脚本试图提前检查所需的长度并将其设置group_concat_max_len
为足够大。
但是检查增加了额外的查询。设置group_concat_max_len
为最大值有什么弊端?好处是更少的查询。
Answers:
根据MySQL BOL 在这里
group_concat_max_len
64位的最大值是18446744073709551615
和
group_concat_max_len
32位的最大值是4294967295
结果被截断为group_concat_max_len
系统变量给定的最大长度,该最大长度为default value of 1024
。尽管返回值的有效最大长度受的值限制,但可以将值设置得更高max_allowed_packet
。更改group_concat_max_len
at 的值的语法runtime
如下,其中val是一个unsigned integer
:
SET [GLOBAL | SESSION] group_concat_max_len = val;
注:该maximum permitted
在结果长度bytes
的GROUP_CONCAT()
函数。默认值为1024
。
正如MySQL所记录的博客此处使用GROUP_CONCAT
小的group_concat_max_len
设置?您的结果将是silently truncated
(但请务必检查警告)。
如MySQL Blog by Here:此参数限制连接结果的文本长度。默认为。我认为这是一个非常低的价值。最近,我一直在使用越来越多的方法来解决其他棘手的问题。并且在大多数情况下,just 导致结果被静音(Argh!)截断,从而返回错误的结果。有趣的是,此参数的最大值受限制。那么,我建议应完全删除此参数,并将其作为。否则,我希望它的数量为几个。@Shlomi Noach
group_concat_max_len
maximum
GROUP_CONCAT
1024
GROUP_CONCAT
1024
too low
max_packet_size
max_packet_size
limitation
only limitation
very large default value
MB