O lekcji
Indeksy są strukturą pomocniczą, która przyspiesza dostęp do danych w tabelach przy wykonywaniu zapytań, zwłaszcza tych używających klauzul WHERE, JOIN, czy ORDER BY.
Tworzenie indeksów
Indeks można utworzyć na jednej kolumnie lub na kilku kolumnach.
-
Indeks na jednej kolumnie:
- Przykład: Utwórz indeks na kolumnie
Nazwisko
w tabeliKlienci
:CREATE INDEX idx_nazwisko ON Klienci(Nazwisko);
- Przykład: Utwórz indeks na kolumnie
-
Indeks unikalny:
- Powoduje, że wartości w indeksowanej kolumnie muszą być unikalne.
- Przykład: Utwórz unikalny indeks na kolumnie
Email
:CREATE UNIQUE INDEX idx_email ON Klienci(Email);
-
Indeks złożony:
- Tworzy indeks na wielu kolumnach. Użyteczne np. przy sortowaniu lub wyszukiwaniu według wielu kryteriów.
- Przykład:
CREATE INDEX idx_imie_nazwisko ON Klienci(Imię, Nazwisko);
Rola indeksów w optymalizacji zapytań
Indeksy znacząco przyspieszają działanie zapytań, ale należy pamiętać:
- Zalety: Przyspieszają wyszukiwanie danych i wykonywanie zapytań z warunkami (
WHERE
,JOIN
,ORDER BY
). - Wady: Spowalniają operacje takie jak wstawianie (
INSERT
) lub aktualizacja (UPDATE
), ponieważ indeks musi być ciągle aktualizowany.
Przykład z klauzulą WHERE: Mając indeks na kolumnie Nazwisko
, zapytanie:
SELECT * FROM Klienci WHERE Nazwisko = 'Kowalski';
zostanie wykonane znacznie szybciej (szczególnie w przypadku dużej liczby wierszy).