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

CREATE INDEX i UNIQUE INDEX

Skoro wiesz już, czym jest indeks, czas założyć własny katalog. Służy do tego polecenie CREATE INDEX.

Tworzenie indeksu

1CREATE INDEX idx_tytul ON ksiazki(tytul);

Czytamy to tak: "Utwórz katalog o nazwie idx_tytul, który spisuje regał ksiazki według kolumny tytul". Od tej chwili wyszukiwanie po tytule będzie błyskawiczne. Nazwy indeksów zwyczajowo zaczynamy od

idx_
, by łatwo je rozpoznać.

Indeks unikalny

Czasem chcemy, by wartości w kolumnie się nie powtarzały - na przykład każdy czytelnik musi mieć inny adres e-mail. Wtedy zakładamy UNIQUE INDEX:

1CREATE UNIQUE INDEX idx_email ON czytelnicy(email);

Taki indeks działa jak zwykły katalog, ale dodatkowo pilnuje, by żaden adres nie pojawił się dwa razy. Próba dodania drugiego czytelnika z tym samym e-mailem zakończy się błędem.

Kiedy zakładać indeks?

Indeksuj kolumny, których często używasz do:

  • filtrowania - w
    WHERE
    (np.
    WHERE tytul = ...
    ),
  • łączenia tabel - w
    JOIN
    (np.
    autor_id
    ),
  • sortowania - w
    ORDER BY
    .

Koszt indeksów

Katalog trzeba aktualizować przy każdej zmianie zwojów. Tak samo indeks:

  • spowalnia zapis (
    INSERT
    ,
    UPDATE
    ,
    DELETE
    ),
  • zajmuje dodatkowe miejsce na dysku.

Dlatego nie indeksujemy wszystkiego jak leci - zakładamy katalogi tylko tam, gdzie naprawdę przyspieszą pracę Biblioteki.

Przejdź do CodeWorlds