Đây là bản trình diễn về những gì @ JorgeLondoño đang nói về.
Đặt kích thước gói tối đa cho phép của máy chủ:
mysql> set global max_allowed_packet=1024*1024*1024;
Thoát và mở lại ứng dụng mysql, lần này đặt kích thước gói tối đa của ứng dụng khách để phù hợp:
$ mysql --max-allowed-packet=$((1024*1024*1024*))
Tạo một bảng thử nghiệm với một cột JSON và điền vào nó bằng tài liệu JSON dài nhất mà bạn có thể:
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 |
+-----------+
Điều này cho thấy rằng tôi đã có thể tạo một tài liệu JSON duy nhất với 100 triệu phần tử và MySQL lưu trữ tài liệu này trong khoảng 800MB.
Tôi đã không thử một tài liệu dài hơn. Tôi cho rằng nó đạt tối đa 1 GB, đây là giá trị lớn nhất mà bạn có thể đặt cho max_allowed_packet.