json lưu nguyên văn bản JSON và phân tích lại mỗi lần dùng. jsonb lưu dạng nhị phân đã phân tích sẵn — mất định dạng và thứ tự key gốc, nhưng query và đánh index nhanh hơn nhiều. Hầu hết ứng dụng nên dùng jsonb.
Ví dụ tìm theo nội dung JSON (toán tử "chứa" @>):
SELECT * FROM events
WHERE payload @> '{"type":"checkout"}'::jsonb;Dùng JSONB cho thuộc tính linh hoạt, payload sự kiện hay metadata.
Đừng dùng nó để né thiết kế quan hệ cho dữ liệu vốn có quan hệ và ràng buộc rõ ràng.
json stores the raw JSON text and re-parses it on every use. jsonb stores a pre-parsed binary form — it loses original formatting and key order, but querying and indexing are much faster. Most applications should use jsonb.
Example searching by JSON content (the "contains" operator @>):
SELECT * FROM events
WHERE payload @> '{"type":"checkout"}'::jsonb;Use JSONB for flexible attributes, event payloads or metadata.
Do not use it to dodge relational design for data that genuinely has relationships and clear constraints.