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

Loại dữ liệu nào để chọn json hoặc jsonb hoặc văn bản

Giả sử bạn đang nói về JSON thực tế, chặt chẽ (không có các dấu ngoặc kép như khóa chưa được trích dẫn) ...

json không quá khác với text . Nó không làm được gì nhiều ngoài việc xác thực JSON .

jsonb là một điều khác biệt so với hai cấu trúc này:đó là một cấu trúc dữ liệu chính thức với định dạng nội bộ của riêng nó, có nhiều thao tác hơn có sẵn trong tìm kiếm. Ví dụ:json không có = có thể áp dụng (toán tử bình đẳng). jsonb có. (text cũng vậy, mặc dù nó khác nhau về ngữ nghĩa.)

Lập chỉ mục hợp lý hơn nhiều, nhưng nó phải được chuyển đổi qua lại trong quá trình đọc và ghi.

Do đó, jsonb ở đây có vẻ không phải là một lựa chọn hợp lý.

... Vì vậy, chỉ còn một quyết định để đưa ra:

Bạn có muốn đảm bảo rằng cơ sở dữ liệu của mình chỉ chứa các giá trị JSON hợp lệ trong cột của bạn không? Ở cấp độ cơ sở dữ liệu? Hay bạn tin tưởng mọi ứng dụng khách của cơ sở dữ liệu đó (thường là ứng dụng máy chủ) chỉ cung cấp dữ liệu hợp lệ?

json là một lựa chọn tương đối an toàn. Sử dụng text về mặt lý thuyết có thể cải thiện hiệu suất bằng một biên độ không đáng kể do không có xác thực, nhưng bạn sẽ chỉ nhận được các con số cụ thể bằng cách đo điểm chuẩn. Nhưng nó không có biện pháp bảo vệ chống lại các giá trị không phải JSON và một lỗi ngẫu nhiên trong ứng dụng khách có thể không được chú ý. Kiểm tra có trách nhiệm!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python / postgres / psycopg2:nhận ID của hàng vừa được chèn

  2. Làm thế nào để bạn làm toán ngày mà bỏ qua năm?

  3. psycopg2 và tập lệnh python vô hạn

  4. Có thể thực hiện các truy vấn cơ sở dữ liệu chéo với PostgreSQL không?

  5. Heroku:PG ::ConnectionBad:không thể kết nối với máy chủ:Kết nối bị từ chối