これが@JorgeLondoñoが話していることのデモです。
サーバーの最大許容パケットサイズを設定します:
mysql> set global max_allowed_packet=1024*1024*1024;
mysqlクライアントを終了して再度開きます。今回は、クライアントの最大パケットサイズを一致するように設定します。
$ mysql --max-allowed-packet=$((1024*1024*1024*))
JSON列を使用してテストテーブルを作成し、可能な限り長いJSONドキュメントを入力します。
mysql> create table test.jtest ( j json );
mysql> insert into test.jtest
set j = concat('[', repeat('"word",', 100000000), '"word"]');
Query OK, 1 row affected (1 min 49.67 sec)
mysql> select length(j) from test.jtest;
+-----------+
| length(j) |
+-----------+
| 800000008 |
+-----------+
これは、1億個の要素を含む単一のJSONドキュメントを作成できたことを示しており、MySQLはこれを約800MBに保存します。
私はもっと長い文書を試しませんでした。 max_allowed_packetに設定できる最大値である1GBで最大になると思います。