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_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ブログ(ここまで):このパラメーターは、連結結果のテキストの長さを制限します。デフォルトはです。これは非常に低い値だと思います。最近では、他の方法では困難な問題を解決するためにますます使用しています。そして、ほとんどの場合、はちょうどであり、結果はサイレント(Argh!)で切り捨てられ、不正な結果が返されました。このパラメータの最大値がによって制限されることを知るのは興味深いことです。その場合、このパラメーターは完全に削除して、をとして持つことをお勧めします。それ以外の場合は、数個のを指定してください。@Shlomi Noach group_concat_max_lenmaximumGROUP_CONCAT1024GROUP_CONCAT1024too lowmax_packet_sizemax_packet_size limitationonly limitationvery large default valueMB