Voici une démo de ce dont parle @JorgeLondoño.
Définissez la taille de paquet maximale autorisée du serveur :
mysql> set global max_allowed_packet=1024*1024*1024;
Quittez et ouvrez à nouveau le client mysql, cette fois en définissant la taille maximale des paquets du client pour qu'elle corresponde :
$ mysql --max-allowed-packet=$((1024*1024*1024*))
Créez une table de test avec une colonne JSON et remplissez-la avec le document JSON le plus long possible :
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 |
+-----------+
Cela montre que j'ai pu créer un seul document JSON avec 100 millions d'éléments, et MySQL le stocke dans environ 800 Mo.
Je n'ai pas essayé un document plus long. Je suppose qu'il atteint un maximum de 1 Go, ce qui est la plus grande valeur que vous pouvez définir pour max_allowed_packet.