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

Indeksy zlozone i usuwanie indeksow

Znasz już pojedyncze katalogi. Teraz nauczę Cię budować katalogi wielokolumnowe i sprzątać te, które przestały służyć Bibliotece.

Indeks złożony (wielokolumnowy)

Czasem przeszukujemy regały po dwóch rubrykach naraz - na przykład szukamy książek konkretnego autora w danej kategorii. Wtedy zakładamy indeks złożony - jeden katalog spisujący zwoje według kilku kolumn:

1CREATE INDEX idx_autor_kat ON ksiazki(autor_id, kategoria_id);

Taki indeks przyspieszy zapytanie filtrujące po obu kolumnach jednocześnie.

Kolejność kolumn ma znaczenie

W indeksie złożonym kolejność kolumn nie jest dowolna. Katalog jest posortowany najpierw według pierwszej kolumny, potem - w jej obrębie - według drugiej. Działa najlepiej, gdy filtrujesz po pierwszej kolumnie (lub po pierwszej i drugiej razem).

Indeks

(autor_id, kategoria_id)
świetnie pomoże, gdy znasz
autor_id
. Jeśli filtrujesz tylko po
kategoria_id
- ten konkretny katalog niewiele pomoże. To jak katalog ułożony najpierw według autora: szybko znajdziesz autora, ale samej kategorii w nim nie wyszukasz wprost.

Usuwanie indeksu

Zbędny katalog to ciężar - spowalnia zapisy i zajmuje miejsce. Gdy indeks przestaje być potrzebny, usuwamy go poleceniem DROP INDEX:

1DROP INDEX idx_tytul ON ksiazki;

Czytamy: "Usuń katalog idx_tytul z regału ksiazki". Sam regał i jego zwoje zostają nietknięte - znika jedynie spis, który je porządkował.

Kiedy sprzątać katalogi

  • Indeks nigdy nie używany w zapytaniach to czysty koszt - usuń go.
  • Po zmianie sposobu wyszukiwania stare indeksy bywają zbędne.
  • Dobry skryba co jakiś czas przegląda katalogi i usuwa te martwe - tak jak porządkuje regały.
Przejdź do CodeWorlds