Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Độ dài cột JSON tối đa trong MySQL

Đâ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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xuất danh sách các liên kết cố định đẹp và tiêu đề bài đăng

  2. Cách cho phép tìm kiếm toàn văn bản với dấu gạch ngang trong truy vấn tìm kiếm

  3. Rails 5 Mysql UUID

  4. Cách gọi một Thủ tục được lưu trữ từ Hibernate có cả tham số IN và OUT

  5. Chèn MYSQL nơi không tồn tại với PDO