Indeks w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest indeks w SQL?

Indeks w bazie danych to specjalna struktura przyspieszająca wyszukiwanie, sortowanie i filtrowanie danych w tabeli. Działa podobnie jak indeks w książce: zamiast przeglądać wszystkie rekordy po kolei, system bazy danych może szybciej odnaleźć potrzebne wartości.

Indeksy tworzy się najczęściej dla kolumn, które często występują w warunkach WHERE, sortowaniu ORDER BY, łączeniu tabel JOIN lub grupowaniu GROUP BY.

Przykład zastosowania

Jeżeli często wyszukujemy klientów po nazwisku:

SELECT * FROM klienci
WHERE nazwisko = 'Kowalski';

warto utworzyć indeks na kolumnie nazwisko:

CREATE INDEX idx_klienci_nazwisko
ON klienci(nazwisko);

Kiedy indeks pomaga?

Indeks jest przydatny, gdy:

  • tabela zawiera dużo rekordów,
  • dana kolumna jest często przeszukiwana,
  • dane są często sortowane,
  • kolumna jest używana w relacjach między tabelami,
  • zapytania muszą działać szybciej.

Wady indeksów

Indeks nie zawsze jest korzystny. Zajmuje dodatkowe miejsce na dysku i może spowolnić operacje modyfikujące dane, takie jak:

  • INSERT,
  • UPDATE,
  • DELETE.

Dzieje się tak, ponieważ po każdej zmianie danych baza musi zaktualizować również indeks.

Najważniejsze do egzaminu

Jeśli pytanie dotyczy optymalizacji wyszukiwania lub sortowania danych, poprawną odpowiedzią jest zwykle: utworzyć indeks. Klucz obcy i więzy integralności służą głównie do zachowania poprawnych relacji między tabelami, a nie bezpośrednio do przyspieszania wyszukiwania.