Nie zawsze jest jasne, gdzie używać indeksów w tabelach SQL. Istnieje jednak kilka ogólnych zasad, które mogą pomóc w większości przypadków w podjęciu decyzji.
- Umieść indeks w kolumnach, które są używane w klauzulach where
- Umieść indeks w kolumnach, których używasz do dołączenia.
- Staraj się nie używać więcej niż 4-5 indeksów w kolumnach w tej samej tabeli.
Ogólne koncepcje, o których należy pamiętać, to:
- Każdy indeks, którego używasz, przyspieszy wyszukiwanie w tych kolumnach.
- Każdy dodany indeks powodujący, że wstawianie do tej tabeli będzie nieco wolniejsze.
- Z poprzednich dwóch. Twoim obowiązkiem jest podjęcie decyzji o tym, ile wstawek i zapytań wykonasz w tabelach, aby zdecydować, czy użyć indeksu i na których kolumnach, czy nie.
EDYTUJ
Komentarz @AndrewLazarus jest naprawdę ważny i postanowiłem dodać go do odpowiedzi:
- Nie używaj indeksów w kolumnach zawierających tylko kilka różnych wartości. Na przykład kolumna, która zawiera stan, gdy jest tylko kilka stanów lub wartość logiczna. Powodem, dla którego nie należy tego robić, jest to, że indeks tak naprawdę nie pomaga, ponieważ zostanie podzielony tylko przez liczbę wartości, a ponieważ masz tylko kilka z nich, nie przyniesie to żadnej rzeczywistej korzyści. Tabela zajmowałaby więcej miejsca z indeksem i preforma wolniej przy wstawianiu, ale nie uzyskasz znacznie lepszej wydajności podczas wykonywania zapytań