Skąd wiesz, czy Biblioteka korzysta z katalogu, czy mozolnie przegląda regał po regale? Pytasz o plan zapytania za pomocą polecenia EXPLAIN.
Dopisz
EXPLAIN przed dowolnym zapytaniem SELECT:1EXPLAIN SELECT * FROM ksiazki WHERE tytul = 'Iliada';MySQL nie wykona zapytania, lecz pokaże, jak zamierza je wykonać - to jak podejrzenie planu bibliotekarza, zanim ruszy w głąb regałów.
EXPLAIN zwraca tabelę z kilkoma kolumnami. Na początek najważniejsze są dwie:
ALL oznacza pełne skanowanie tabeli (źle!), a ref lub const - użycie indeksu (dobrze!).NULL, żaden katalog nie pomógł i baza czyta wszystko.Uruchom EXPLAIN bez indeksu na
tytul - zobaczysz type: ALL, key: NULL. Baza przegląda każdy zwój.Załóż indeks
idx_tytul, uruchom EXPLAIN ponownie - teraz type: ref, a w key pojawi się idx_tytul. Biblioteka zajrzała do katalogu zamiast wędrować po regałach.EXPLAIN to Twoje narzędzie diagnostyczne. Gdy zapytanie działa wolno, najpierw sprawdź jego plan. Jeśli widzisz pełne skanowanie tam, gdzie filtrujesz po kolumnie - to znak, że przyda się indeks. Dobry skryba zawsze sprawdza plan, zanim oskarży Bibliotekę o powolność!