Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Katalog Pinakes - czym jest indeks

Witaj @name w sercu mojej pracy - Sali Katalogowej! To tutaj powstał Pinakes, pierwszy katalog w dziejach. Bez niego odnalezienie jednego zwoju wśród setek tysięcy oznaczałoby przejście regał po regale, półka po półce. W świecie MySQL takie żmudne przeglądanie nazywamy pełnym skanowaniem tabeli (full table scan).

Po co Bibliotece katalog?

Wyobraź sobie, że szukasz książki o tytule Iliada. Bez katalogu musiałbyś rozwinąć każdy zwój i sprawdzić tytuł. Przy milionie zwojów to godziny pracy!

Pinakes zmienia wszystko: spisałem w nim tytuły w porządku alfabetycznym i przy każdym zanotowałem sygnaturę regału. Teraz wystarczy zajrzeć do katalogu, by od razu wiedzieć, gdzie leży zwój.

Indeks w MySQL

Indeks to dokładnie to samo - dodatkowa struktura, którą baza tworzy obok tabeli, by szybciej odnajdywać wiersze. Zamiast czytać całą tabelę, MySQL zagląda do indeksu i od razu trafia we właściwe miejsce.

1SELECT * FROM ksiazki WHERE tytul = 'Iliada';

Bez indeksu na kolumnie

tytul
baza sprawdzi każdy wiersz tabeli
ksiazki
. Z indeksem - znajdzie Iliadę niemal natychmiast, jak ja w moim katalogu.

Co warto zapamiętać

  • Indeks nie zmienia danych w tabeli - to osobny "katalog".
  • Indeks przyspiesza odczyt (wyszukiwanie).
  • Każda tabela ma już jeden indeks: na kluczu głównym (
    id
    ).

W tej lokacji nauczę Cię budować własne katalogi, czytać plany zapytań i porządkować regały tak, by Biblioteka działała bez zarzutu. Zaczynamy!

Przejdź do CodeWorlds