Zależy to od dystrybucji danych.
Wyobraź sobie, że mam książkę z 1000 ściśle wpisanych stron, a jedyne słowa w mojej książce to „tak” i „nie” powtarzane w kółko i rozprowadzane losowo. Gdyby poproszono mnie o zaznaczenie wszystkich przypadków „tak”, czy indeks na końcu książki pomógłby? To zależy.
Gdyby istniał pół na pół losowy rozkład „tak” i „nie”, wyszukiwanie w indeksie nie pomogłoby. Indeks sprawiłby, że książka byłaby dużo większa, a poza tym szybciej bym zaczął od początku i przeszukiwał każdą stronę, szukając wszystkich przypadków „tak” i zakreślając je, zamiast sprawdzać każdy element w indeks, a następnie pobieranie odniesienia z wpisu indeksu do strony, do której się odnosi.
Ale gdyby było, powiedzmy, tylko dziesięć przypadków „tak” w mojej tysiącostronicowej książce, a wszystko inne było po prostu milionami „nie”, to indeks zaoszczędziłby mi mnóstwo czasu na znajdowaniu tych dziesięciu przykładów „tak” i okrążaniu ich .
Tak samo jest w bazach danych. Jeśli jest to dystrybucja 50:50, indeks nie pomoże - silnik bazy danych lepiej będzie po prostu przeglądać dane od początku do końca (pełne skanowanie tabeli), a indeks po prostu powiększy bazę danych i wolniej pisać i aktualizować. Ale jeśli jest to coś w rodzaju dystrybucji 4000: 1 (zgodnie z oucil w tym wątku), to przeszukiwanie indeksu może znacznie przyspieszyć to, jeśli jest to pozycja 1 na 4000, której szukasz.