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
最大値に設定するだけの欠点はありますか?利点は、クエリが少ないことです。
回答:
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ブログ(ここまで):このパラメーターは、連結結果のテキストの長さを制限します。デフォルトはです。これは非常に低い値だと思います。最近では、他の方法では困難な問題を解決するためにますます使用しています。そして、ほとんどの場合、はちょうどであり、結果はサイレント(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