Trang chủ Bài viết Cơ sở dữ liệu json và jsonb trong PostgreSQL: đo kích thước và tốc độ thực tế
Cơ sở dữ liệu 09/11/2026 20 lượt xem

json và jsonb trong PostgreSQL: đo kích thước và tốc độ thực tế

json và jsonb trong PostgreSQL: đo kích thước và tốc độ thực tế

Bối cảnh đo đạc

Chris van Eijk đã thực hiện phép đo so sánh kiểu dữ liệu json và jsonb trên PostgreSQL 17 và 18, thử nghiệm trên sáu dạng tài liệu khác nhau. Mục tiêu là làm rõ khi nào jsonb tiết kiệm dung lượng và khi nào lại tốn hơn, cùng với tốc độ đọc và hành vi của chỉ mục GIN.

Kích thước: không phải lúc nào jsonb cũng nhỏ hơn

Kết quả cho thấy jsonb không phải lựa chọn nhỏ gọn mặc định như nhiều người vẫn nghĩ. Tùy dạng tài liệu, jsonb có thể nhỏ hơn tới 23% so với json, nhưng ở trường hợp khác lại lớn hơn tới 41%. Điều này phụ thuộc vào cấu trúc dữ liệu bên trong tài liệu, ví dụ mức độ lặp khóa, kiểu giá trị và cách jsonb lưu trữ nhị phân kèm metadata.

Tốc độ đọc và chỉ mục GIN

Bài viết cũng đề cập đến tốc độ đọc của hai kiểu dữ liệu và vai trò của GIN. Đây là yếu tố quan trọng khi chọn kiểu lưu trữ cho cột JSON trong thực tế, vì dung lượng nhỏ hơn chưa chắc đi kèm truy vấn nhanh hơn.

Điều thay đổi khi lựa chọn

Tóm lại, việc chọn json hay jsonb cần dựa trên đo đạc cụ thể với dạng tài liệu thực tế của ứng dụng, thay vì giả định jsonb luôn tối ưu về dung lượng hay tốc độ.

Nguồn: Planet PostgreSQL

Trích nguồn từ: Planet PostgreSQL

Chia sẻ:

Bài viết liên quan

Zalo