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

Postgresql JSONB sắp ra mắt. Dùng gì bây giờ? Hstore? JSON? EAV?

Nó phụ thuộc. Nếu bạn mong đợi có nhiều người dùng, khối lượng giao dịch rất cao hoặc số lượng lớn các lần tìm nạp thuộc tính trên mỗi truy vấn, tôi sẽ nói hãy sử dụng HSTORE. Tuy nhiên, nếu ứng dụng của bạn sẽ bắt đầu nhỏ và phát triển theo thời gian hoặc có tương đối ít giao dịch tìm nạp thuộc tính hoặc chỉ tìm nạp một vài thuộc tính cho mỗi truy vấn, thì hãy sử dụng JSON. Ngay cả trong trường hợp sau, nếu bạn không tìm nạp nhiều thuộc tính nhưng thường xuyên kiểm tra một hoặc hai khóa trong WHERE của các truy vấn của bạn, bạn có thể tạo một chỉ mục chức năng để tăng tốc mọi thứ:

CREATE INDEX idx_foo_somekey ON foo((bar ->> 'somekey'));

Bây giờ, khi bạn có WHERE bar ->> somekey , nó sẽ sử dụng chỉ mục.

Và tất nhiên, sẽ dễ dàng hơn khi sử dụng dữ liệu lồng nhau và nâng cấp lên jsonb khi nó có sẵn cho bạn.

Vì vậy, tôi sẽ nghiêng về phía JSON trừ khi bạn biết chắc chắn rằng bạn sẽ đá đít máy chủ của mình với việc sử dụng nhiều tìm nạp khóa trước khi bạn có cơ hội nâng cấp lên 9.4. Nhưng để chắc chắn về điều đó, tôi sẽ nói, hãy thực hiện một số đo điểm chuẩn với khối lượng truy vấn dự kiến ​​ngay bây giờ và xem điều gì phù hợp nhất với bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể chèn hàng bằng Hibernate nếu sử dụng dấu ngoặc kép

  2. Kết nối với GCP Cloud SQL từ App Engine trong dự án riêng biệt

  3. Làm cách nào để tạo mô hình cụm chuyển đổi dự phòng PostgreSQL với Docker / Kubernetes?

  4. Các tham số được đặt tên trong các hàm cơ sở dữ liệu với SQLAlchemy

  5. Hàm sum XPath hay fn:sum có được triển khai trong PostgreSQL XPath không?