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

Giải thích về JSONB do PostgreSQL giới thiệu

Đầu tiên, hstore là một mô-đun đóng góp, chỉ cho phép bạn lưu trữ các cặp khóa => giá trị, trong đó khóa và giá trị chỉ có thể là text s (tuy nhiên giá trị có thể là sql NULL s cũng vậy).

Cả json &jsonb cho phép bạn lưu trữ giá trị JSON hợp lệ (được định nghĩa trong thông số kỹ thuật của nó).

F.ex. đây là các đại diện JSON hợp lệ:null , true , [1,false,"string",{"foo":"bar"}] , {"foo":"bar","baz":[null]} - hstore chỉ là một tập hợp con nhỏ so với những gì JSON có khả năng (nhưng nếu bạn chỉ cần tập hợp con này thì không sao cả).

Sự khác biệt duy nhất giữa json &jsonb là nơi lưu trữ của họ:

  • json được lưu trữ ở định dạng văn bản thuần túy, trong khi
  • jsonb được lưu trữ trong một số biểu diễn nhị phân

Có 3 hệ quả chính của việc này:

  • jsonb thường chiếm nhiều dung lượng đĩa để lưu trữ hơn json (đôi khi không)
  • jsonb mất nhiều thời gian hơn để xây dựng từ biểu diễn đầu vào của nó so với json
  • json hoạt động mất đáng kể nhiều thời gian hơn jsonb (&phân tích cú pháp cũng cần được thực hiện mỗi khi bạn thực hiện một số thao tác tại json giá trị đã nhập)

Khi jsonb sẽ có sẵn với một bản phát hành ổn định, sẽ có hai trường hợp sử dụng chính, khi bạn có thể dễ dàng chọn giữa chúng:

  1. Nếu bạn chỉ làm việc với biểu diễn JSON trong ứng dụng của mình, PostgreSQL chỉ được sử dụng để lưu trữ và truy xuất biểu diễn này, bạn nên sử dụng json .
  2. Nếu bạn thực hiện nhiều thao tác trên giá trị JSON trong PostgreSQL hoặc sử dụng lập chỉ mục trên một số trường JSON, bạn nên sử dụng jsonb .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để tắt cập nhật / xóa nhưng vẫn cho phép trình kích hoạt thực hiện chúng không?

  2. PostgreSQL:Sửa đổi CHỦ SỞ HỮU trên tất cả các bảng đồng thời trong PostgreSQL

  3. thiếu mục nhập mệnh đề FROM cho bảng Grupo cakephp

  4. Truy vấn N hàng liên quan cuối cùng trên mỗi hàng

  5. Mẹo quản lý PostgreSQL từ xa