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

Max JSON kolonnelængde i MySQL

Her er en demo af, hvad @JorgeLondoño taler om.

Indstil serverens maksimalt tilladte pakkestørrelse:

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

Afslut og åbn mysql-klienten igen, denne gang indstiller klientens maksimale pakkestørrelse til at matche:

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

Opret en testtabel med en JSON-kolonne og fyld den med det længste JSON-dokument, du kan:

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

Dette viser, at jeg var i stand til at oprette et enkelt JSON-dokument med 100 millioner elementer, og MySQL gemmer dette i cirka 800 MB.

Jeg prøvede ikke et længere dokument. Jeg antager, at den maksimalt er på 1 GB, hvilket er den største værdi, du kan indstille for max_allowed_packet.



  1. Beregn antallet af samtidige hændelser i SQL

  2. Erstat unicode-tegn i PostgreSQL

  3. 7 vigtige ting at huske om datamodel globalisering

  4. Ret fejl "ORA-01789:forespørgselsblokken har forkert antal resultatkolonner"