Bil*_*win 34
这是@JorgeLondoño正在谈论的演示.
设置服务器的最大允许数据包大小:
mysql> set global max_allowed_packet=1024*1024*1024;
Run Code Online (Sandbox Code Playgroud)
再次退出并打开mysql客户端,这次设置客户端最大数据包大小以匹配:
$ mysql --max-allowed-packet=$((1024*1024*1024*))
Run Code Online (Sandbox Code Playgroud)
使用JSON列创建一个测试表,并用最长的JSON文档填充它:
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 |
+-----------+
Run Code Online (Sandbox Code Playgroud)
这表明我能够创建一个包含1亿个元素的单个JSON文档,MySQL将其存储在大约800MB中.
我没有尝试更长的文件.我假设它最大为1 GB,这是你可以为max_allowed_packet设置的最大值.
Jor*_*oño 16
存储在JSON列中的JSON文档的大小限制为max_allowed_packet系统变量的值.(虽然服务器在内部操作JSON值,但它可能更大;当服务器存储时,限制适用.)
Command-Line Format --max_allowed_packet=#
System Variable Name max_allowed_packet
Variable Scope Global, Session
Dynamic Variable Yes
Permitted Values Type integer
Default 4194304
Min Value 1024
Max Value 1073741824
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17623 次 |
| 最近记录: |