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_len64位的最大值是18446744073709551615和
group_concat_max_len32位的最大值是4294967295
结果被截断为group_concat_max_len系统变量给定的最大长度,该最大长度为default value of 1024。尽管返回值的有效最大长度受的值限制,但可以将值设置得更高max_allowed_packet。更改group_concat_max_lenat 的值的语法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_lenmaximumGROUP_CONCAT1024GROUP_CONCAT1024too lowmax_packet_sizemax_packet_size limitationonly limitationvery large default valueMB