Mysql
 sql >> Database >  >> RDS >> Mysql

Lunghezza massima della colonna JSON in MySQL

Ecco una demo di ciò di cui sta parlando @JorgeLondoño.

Imposta la dimensione massima consentita del pacchetto del server:

mysql> set global max_allowed_packet=1024*1024*1024;

Esci e apri di nuovo il client mysql, questa volta impostando la dimensione massima del pacchetto del client in modo che corrisponda a:

$ mysql --max-allowed-packet=$((1024*1024*1024*))

Crea una tabella di test con una colonna JSON e riempila con il documento JSON più lungo che puoi:

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 |
+-----------+

Ciò dimostra che sono stato in grado di creare un singolo documento JSON con 100 milioni di elementi e MySQL lo archivia in circa 800 MB.

Non ho provato un documento più lungo. Presumo che raggiunga un massimo di 1 GB, che è il valore più grande che puoi impostare per max_allowed_packet.