programing

MySQL의 최대 JSON 열 길이

megabox 2023. 4. 4. 21:12
반응형

MySQL의 최대 JSON 열 길이

MySQL의 JSON 열에 저장할 수 있는 최대 문자 수는 얼마입니까?MySQL 매뉴얼에는 기재되어 있지 않습니다.

여기 @JorgeLondono가 말하는 데모가 있습니다.

서버의 최대 허용 패킷 크기를 설정합니다.

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

mysql 클라이언트를 종료하고 다시 엽니다.이때, 클라이언트의 최대 패킷사이즈를 일치로 설정합니다.

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

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

1억개의 요소로 하나의 JSON 문서를 만들 수 있었고 MySQL은 약 800MB로 저장했습니다.

나는 더 긴 서류를 시도하지 않았다.max_allowed_packet에 설정할 수 있는 최대값인 1GB에서 최대값이 될 것으로 예상됩니다.

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

언급URL : https://stackoverflow.com/questions/40711101/max-json-column-length-in-mysql

반응형