Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

PRIMARY KEY vs UNIQUE vs INDEX

W Bibliotece spotkasz trzy rodzaje katalogów. Wyglądają podobnie, ale różnią się surowością reguł. Poznajmy je od najmocniejszego.

PRIMARY KEY (klucz główny)

To najściślejszy katalog - sygnatura główna każdego zwoju. Reguły:

  • jest dokładnie jeden na tabelę,
  • jego wartości są unikalne (żadnych duplikatów),
  • nie dopuszcza wartości
    NULL
    .

Najczęściej to kolumna

id
. To ona jednoznacznie wskazuje wiersz, jak numer katalogowy zwoju.

1SELECT * FROM autorzy WHERE id = 3;

UNIQUE INDEX

Trochę luźniejszy. Też pilnuje unikalności, ale:

  • może być ich wiele w jednej tabeli,
  • dopuszcza wartości
    NULL
    (w MySQL może ich być wiele).

Idealny dla kolumn takich jak

email
- każdy adres inny, ale tabela ma już swój klucz główny gdzie indziej.

Zwykły INDEX

Najłagodniejszy katalog. Nie pilnuje unikalności - dopuszcza powtórzenia. Jego jedynym zadaniem jest przyspieszenie wyszukiwania.

Świetnie sprawdza się na kolumnie

autor_id
w tabeli
ksiazki
- jeden autor może mieć wiele książek, więc wartości się powtarzają, ale chcemy je szybko odnajdywać.

Podsumowanie różnic

| Rodzaj | Unikalny? | NULL? | Ile na tabelę | |--------|-----------|-------|----------------| | PRIMARY KEY | tak | nie | jeden | | UNIQUE | tak | tak | wiele | | INDEX | nie | tak | wiele |

Zapamiętaj: wszystkie trzy przyspieszają odczyt, ale tylko dwa pierwsze wymuszają unikalność.

Przejdź do CodeWorlds