Câu trả lời:
Một điểm khác biệt chính là chỉ mục duy nhất có thể có giá trị NULL không được phép trong khóa chính. Phân cụm hay không, đây là điểm khác biệt chính giữa việc triển khai thực tế Khóa chính so với Khóa duy nhất.
Ồ, và thực tế là một bảng có thể có một PK và nhiều Vương quốc Anh :-).
Đây là cả hai sự khác biệt trong INTENT không phải trong HIỆU SUẤT. Mặt khác, tôi không nghĩ có sự khác biệt nào. Đằng sau bất kỳ PK hoặc UK, SQL Server sẽ tạo một chỉ mục (tùy thuộc vào yêu cầu, được nhóm hay không) và cách thức sử dụng là minh bạch cho nguồn phát sinh.
PRIMARY KEY
và NOT NULL UNIQUE
, cái trước sẽ khó biến thành hơn nhiều NULL UNIQUE
(đặc biệt nếu ràng buộc đã được tham chiếu bởi khóa ngoại). Chắc chắn sẽ ngăn chặn những thay đổi tình cờ từ NOT NULL
đến NULL
.
Giữa một khóa chính được phân cụm và một chỉ mục được phân cụm duy nhất, không có bất kỳ khác biệt nào ngoài chỉ mục được phân cụm duy nhất có thể có giá trị NULL.
Một chỉ mục cụm không duy nhất có một bộ xác định duy nhất phải được xử lý cho các giá trị không duy nhất.
NOT NULL UNIQUE CLUSTERED
hoặc (B) để làm nổi bật rằng một UQ cụ thể là "đặc biệt" theo nghĩa siêu dữ liệu, mặc dù RDMS là bất khả tri?