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

Khóa chính tổng hợp PostgreSQL

Nếu bạn tạo khóa chính tổng hợp, trên (x, y, z) , PostgreSQL thực hiện điều này với sự trợ giúp của một UNIQUE chỉ mục btree nhiều cột trên (x, y, z) . Ngoài ra, cả ba cột đều NOT NULL (mặc nhiên), đó là sự khác biệt chính giữa PRIMARY KEY và một UNIQUE INDEX .

Bên cạnh những hạn chế rõ ràng đối với dữ liệu của bạn, chỉ mục nhiều cột cũng có ảnh hưởng hơi khác đến hiệu suất của các truy vấn so với ba chỉ mục riêng lẻ trên x , yz .

Thảo luận liên quan trên dba.SE:

  • Hoạt động của các chỉ mục trong PostgreSQL

Với các ví dụ, điểm chuẩn, thảo luận và triển vọng về tính năng mới của quét chỉ theo chỉ mục trong Postgres 9.2.

Đặc biệt, khóa chính trên (x, y, z) sẽ tăng tốc truy vấn với các điều kiện trên x , (x,y) hoặc (x, y, z) một cách tối ưu. Nó cũng sẽ trợ giúp với các truy vấn trên y , z , (y,z) hoặc (x,z) nhưng ở một mức độ thấp hơn nhiều.

Nếu bạn cần tăng tốc truy vấn trên các kết hợp sau, bạn có thể muốn thay đổi thứ tự cột trong ràng buộc PK của mình và / hoặc tạo một hoặc nhiều chỉ mục bổ sung. Xem:

  • Chỉ số tổng hợp có tốt cho các truy vấn trên trường đầu tiên không?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) trong PostgreSQL?

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

  3. Về lợi ích của các đường dẫn được sắp xếp

  4. So sánh Hiệu suất &Định giá PostgreSQL DigitalOcean - ScaleGrid so với Cơ sở dữ liệu được quản lý DigitalOcean

  5. Làm cách nào để lấy một cột có các số liên tiếp, tăng dần mà không bị thiếu số nào?