PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kunci utama komposit PostgreSQL

Jika Anda membuat kunci primer komposit, pada (x, y, z) , PostgreSQL mengimplementasikan ini dengan bantuan satu UNIQUE indeks btree multi-kolom pada (x, y, z) . Selain itu, ketiga kolom tersebut adalah NOT NULL (secara implisit), yang merupakan perbedaan utama antara PRIMARY KEY dan UNIQUE INDEX .

Selain pembatasan yang jelas pada data Anda, indeks multi-kolom juga memiliki efek yang agak berbeda pada kinerja kueri daripada tiga indeks individu pada x , y dan z .

Diskusi terkait di dba.SE:

  • Kerja indeks di PostgreSQL

Dengan contoh, tolok ukur, diskusi, dan pandangan tentang fitur baru pemindaian hanya indeks di Postgres 9.2.

Secara khusus, kunci utama pada (x, y, z) akan mempercepat kueri dengan ketentuan pada x , (x,y) atau (x,y,z) secara optimal. Ini juga akan membantu dengan pertanyaan di y , z , (y,z) atau (x,z) tetapi pada tingkat yang jauh lebih rendah.

Jika Anda perlu mempercepat kueri pada kombinasi terakhir, Anda mungkin ingin mengubah urutan kolom dalam batasan PK Anda dan/atau membuat satu atau lebih indeks tambahan. Lihat:

  • Apakah indeks komposit juga bagus untuk kueri di bidang pertama?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alat ETL Terbaik untuk Bermigrasi ke PostgreSQL

  2. Bagaimana cara membandingkan data antara dua database di PostgreSQL?

  3. Permintaan SQL untuk mendapatkan baris terbaru untuk setiap instance dari kunci yang diberikan

  4. Beberapa koneksi database di Rails

  5. Menginstal permata pg; KESALAHAN:Gagal membuat ekstensi asli permata