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.