sql >> Databasteknik >  >> RDS >> Mysql

Max JSON-kolumnlängd i MySQL

Här är en demo av vad @JorgeLondoño pratar om.

Ställ in serverns högsta tillåtna paketstorlek:

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

Avsluta och öppna mysql-klienten igen, denna gång ställer du in klientens maximala paketstorlek för att matcha:

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

Skapa en testtabell med en JSON-kolumn och fyll den med det längsta JSON-dokumentet 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 |
+-----------+

Detta visar att jag kunde skapa ett enda JSON-dokument med 100 miljoner element, och MySQL lagrar detta i cirka 800 MB.

Jag försökte inte med ett längre dokument. Jag antar att den når max 1 GB, vilket är det största värdet du kan ställa in för max_allowed_packet.



  1. 3 sätt att ersätta NULL med "N/A" i SQLite

  2. Hur returnerar jag flera resultatuppsättningar med SqlCommand?

  3. hur rengör man Laravel Bootstrap cache-konfigurationsfil?

  4. Vyn ALL_PROCEDURES visar inte PROCEDURE_NAME