Jeżeli w bazie danych często wykonujesz zapytania filtrujące (np. warunek WHERE) albo sortujące wyniki (np. ORDER BY) po tej samej kolumnie lub zestawie kolumn, typowym sposobem przyspieszenia jest utworzenie indeksu. Indeks działa jak "spis treści" dla danych: pozwala szybciej znaleźć pasujące wiersze bez konieczności przeglądania całej tabeli, a w niektórych przypadkach ułatwia też sortowanie wyników.
Odpowiedź "utworzyć indeks." jest poprawna, bo indeksy są projektowane właśnie do optymalizacji odczytu danych (wyszukiwania i sortowania). W praktyce różne DBMS mogą używać różnych typów indeksów, ale sama zasada pozostaje wspólna: właściwie dobrany indeks zmniejsza koszt wykonania zapytania.
"dodać klucz obcy." jest odpowiedzią błędną jako metoda celowego przyspieszania wyszukiwania/sortowania. Klucz obcy służy do utrzymania relacji i integralności referencyjnej między tabelami. Może on pośrednio wymuszać pewne indeksowanie w niektórych silnikach lub projektach, ale jego podstawowym celem nie jest zwiększanie wydajności zapytań wyszukujących czy sortujących.
"dodać więzy integralności." także jest błędne w kontekście wydajności wyszukiwania/sortowania. Więzy (np. CHECK, UNIQUE, referencyjne) dbają o poprawność danych przy INSERT/UPDATE/DELETE i mogą nawet dodać narzut przy modyfikacjach. Nie są narzędziem optymalizacji SELECT/ORDER BY jako takim.
"stworzyć osobną tabelę przechowującą tylko te pola." jest błędne, bo rozdzielenie danych bez uzasadnienia zwykle prowadzi do konieczności dodatkowych złączeń (JOIN) lub utrzymywania redundancji. To może pogorszyć wydajność i zwiększyć złożoność projektu. Jeśli problemem jest szybkość wyszukiwania i sortowania, pierwszym krokiem są indeksy oraz analiza planu wykonania zapytania (np. narzędziami typu EXPLAIN).
Wskazówka egzaminacyjna: gdy w treści pojawiają się słowa "często wyszukiwanych" lub "sortowanych", najczęściej chodzi o indeksy, a nie o mechanizmy spójności danych.