sql >> Database >  >> RDS >> Mysql

Max. JSON-kolomlengte in MySQL

Hier is een demo van waar @JorgeLondoño het over heeft.

Stel de maximaal toegestane pakketgrootte van de server in:

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

Sluit af en open de mysql-client opnieuw, deze keer stelt u de maximale pakketgrootte van de client in om overeen te komen:

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

Maak een testtabel met een JSON-kolom en vul deze met het langste JSON-document dat je kunt:

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

Dit laat zien dat ik een enkel JSON-document met 100 miljoen elementen heb kunnen maken, en MySQL slaat dit op in ongeveer 800 MB.

Ik heb geen langer document geprobeerd. Ik neem aan dat het maximaal 1 GB is, wat de grootste waarde is die je kunt instellen voor max_allowed_packet.



  1. Kan geen MySQL-verbinding gebruiken voor entiteitsframework

  2. SQL SERVER:het totaal aantal dagen tussen twee datums ophalen

  3. MariaDB 10.3 beheren met ClusterControl

  4. Operator