Klucz podstawowy to logiczny pojęcie - to unikalny identyfikator wiersza w tabeli. W związku z tym ma wiele atrybutów — może nie być null i musi być unikalny. Oczywiście, ponieważ prawdopodobnie będziesz często wyszukiwać rekordy według ich unikalnego identyfikatora, dobrze byłoby mieć indeks na kluczu podstawowym.
Indeks klastrowy jest fizyczny pojęcie - jest to indeks, który wpływa na kolejność przechowywania rekordów na dysku. To sprawia, że jest to bardzo szybki indeks podczas uzyskiwania dostępu do danych, chociaż może spowolnić zapis, jeśli klucz podstawowy nie jest numerem sekwencyjnym.
Tak, możesz mieć klucz podstawowy bez indeksu klastrowego - a czasami możesz chcieć (na przykład, gdy klucz podstawowy jest kombinacją kluczy obcych w tabeli łączącej i nie chcesz ponosić kosztów związanych z przetasowaniem dysku podczas pisania).
Tak, możesz utworzyć indeks klastrowy na kolumnach, które nie są kluczem podstawowym.