Definicja
Indeks bazodanowy to dodatkowa struktura danych tworzona na kolumnie (lub kolumnach) tabeli, która przyspiesza wyszukiwanie kosztem wolniejszego zapisu. Analogia: indeks na końcu książki.
Bez indeksu vs z indeksem
| Aspekt | Bez indeksu | Z indeksem |
|---|---|---|
| Wyszukiwanie | Full table scan (cała tabela) | Index scan (szybki skok) |
| 1 mln wierszy, szukamy 1 | ~1 mln porównań | ~20 porównań (B-tree) |
| Czas | Sekundy | Milisekundy |
| Zapis (INSERT) | Szybki | Nieco wolniejszy |
| Miejsce na dysku | Brak dodatkowego | Dodatkowa struktura |
Kiedy zakładać indeks?
| Zakładaj | Nie zakładaj |
|---|---|
| Kolumny w WHERE | Małe tabele (< 1000 wierszy) |
| Kolumny w JOIN (klucze obce) | Kolumny rzadko używane w WHERE |
| Kolumny w ORDER BY | Kolumny z małą unikalnością (np. płeć) |
| Kolumny w GROUP BY | Tabele z częstymi INSERT/UPDATE |
Dlaczego to ważne?
BA nie tworzy indeksów, ale powinien rozumieć dlaczego raport trwa 30 sekund — często odpowiedź to brakujący indeks. Ta wiedza pozwala rozmawiać z DBA.