Aby zwiększyć wydajność operacji na bazie danych dla pól często używanych w wyszukiwaniu lub sortowaniu, należy:
Źle. Rozbicie na dodatkową tabelę komplikuje schemat i zwykle wymaga złączeń, czyli spowalnia zapytania.
Źle. Klucz obcy wymusza spójność relacji między tabelami, a nie szybkość odczytu.
Dobrze. Indeks działa jak skorowidz - znacząco przyspiesza wyszukiwanie i sortowanie po danym polu.
Źle. Więzy integralności pilnują poprawności danych, nie wpływają na wydajność wyszukiwania.
Indeks to dodatkowa struktura bazy, która działa jak skorowidz w książce: zamiast przeglądać cały zbiór wierszy, baza sięga do uporządkowanego spisu i szybko odnajduje szukane wartości. Dlatego dla kolumn często występujących w warunkach WHERE, sortowaniu czy złączeniach zakłada się indeksy - przyspieszają odczyt nawet wielokrotnie. Trzeba pamiętać, że indeksy nieco spowalniają zapis i zajmują miejsce, więc zakłada się je świadomie, na właściwych polach. Do poprawy wydajności wyszukiwania służy właśnie indeks.
Łatwo tu pomylić mechanizmy bazy, bo wszystkie brzmią „porządkowo”, ale tylko jeden dotyczy szybkości odczytu. Klucz obcy odpowiada za powiązania między tabelami i pilnuje, by nie wskazać nieistniejącego rekordu - to spójność, nie wydajność. Więzy integralności działają podobnie: sprawdzają poprawność wprowadzanych danych (np. zakres czy unikalność), lecz nie skracają czasu wyszukiwania. Tworzenie osobnej tabeli na często używane pola zwykle przynosi efekt odwrotny - wprowadza dodatkowe złączenia i komplikuje zapytania. Przyspieszenie wyszukiwania i sortowania daje indeks, który utrzymuje uporządkowany spis wartości kolumny i pozwala bazie szybko trafić do właściwych wierszy.