mysql – 为什么将`group_concat_max_len`设置为低于最大值?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 为什么将`group_concat_max_len`设置为低于最大值?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1312字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 为什么将`group_concat_max_len`设置为低于最大值?](/upload/InfoBanner/zyjiaocheng/897/955d0c55ea9a40d19ccfce92ffaae8e0.jpg)
Ubuntu 12.04上的MySQL 5.5.28
如果结果比group_concat_max_len长,那么结果将被无理地截断.
目前我有一个脚本试图提前检查所需的长度并将group_concat_max_len设置得足够大.
但是检查会增加额外的查询.将group_concat_max_len设置为最大值有什么缺点吗?好处是查询较少.
解决方法:
根据MySQL BOL Here
The maximum value for
group_concat_max_len
for 64-bit is
18446744073709551615
&
The maximum value for
group_concat_max_len
for 32-bit is
4294967295
结果被截断为group_concat_max_len系统变量给出的最大长度,该变量的默认值为1024.尽管返回值的有效最大长度受max_allowed_pa??cket的值约束,但该值可以设置得更高.在运行时更改group_concat_max_len的值的语法如下,其中val是无符号整数:
SET [GLOBAL | SESSION] group_concat_max_len = val;
注意:GROUP_CONCAT()函数的最大允许结果长度(以字节为单位).默认值为1024.
正如MySQL记录博客Here使用GROUP_CONCAT和一个小的group_concat_max_len设置?您的结果将被静默截断(请务必检查警告).
作为MySQL博客@Shlomi Noach Here group_concat_max_len:此参数限制GROUP_CONCAT串联结果的最大文本长度.它默认为1024.我认为这是一个非常低的值.最近,我越来越多地使用GROUP_CONCAT来解决其他难题.在大多数情况下,1024太低,导致silent(Argh!)截断结果,从而返回不正确的结果.有趣的是,该参数的最大值受max_packet_size限制.那么,我建议,应该完全删除此参数,并将max_packet_size限制作为唯一限制.否则,我希望它有一个非常大的默认值,大约几MB.
内容总结
以上是互联网集市为您收集整理的mysql – 为什么将`group_concat_max_len`设置为低于最大值?全部内容,希望文章能够帮你解决mysql – 为什么将`group_concat_max_len`设置为低于最大值?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。