Saya mengerti bahwa mungkin ada perbedaan makna atau maksud di antara keduanya, tetapi apakah ada perbedaan perilaku atau kinerja antara kunci primer yang dikelompokkan dan indeks unik yang dikelompokkan?
17
Saya mengerti bahwa mungkin ada perbedaan makna atau maksud di antara keduanya, tetapi apakah ada perbedaan perilaku atau kinerja antara kunci primer yang dikelompokkan dan indeks unik yang dikelompokkan?
Satu perbedaan utama adalah bahwa indeks unik dapat memiliki nilai NULL yang tidak diizinkan di kunci utama. Berkelompok atau tidak, ini adalah perbedaan utama antara implementasi praktis dari Kunci Utama versus Kunci Unik.
Oh, dan fakta bahwa sebuah meja dapat memiliki satu PK dan banyak UK :-).
Keduanya adalah perbedaan dalam INTENT, bukan dalam KINERJA. Kalau tidak, saya tidak berpikir ada perbedaan. Di belakang PK atau UK mana pun, SQL Server membuat indeks (tergantung pada permintaan, berkerumun atau tidak) dan cara yang digunakan transparan untuk sumbernya.
NOT NULL UNIQUE CLUSTERED
atau (B) untuk menyoroti bahwa UQ tertentu adalah "istimewa" dalam arti metadata, meskipun RDMS bersifat agnostik?PRIMARY KEY
danNOT NULL UNIQUE
, yang pertama akan lebih sulit untuk berubah menjadiNULL UNIQUE
(terutama jika kendala sudah dirujuk oleh kunci asing). Pasti akan mencegah perubahan yang tidak disengaja dariNOT NULL
keNULL
.Antara kunci primer berkerumun dan indeks berkerumun unik tidak ada yang berbeda selain indeks berkerumun unik dapat memiliki nilai NULL.
Indeks berkerumun non-unik memiliki pemisah yang harus ditangani untuk nilai-nilai non-unik.
sumber