To w zasadzie sprowadza się do tego, że 10 indeksów o rozmiarze N jest bardziej wydajnych niż jeden indeks o rozmiarze N * 10. Jeśli patrzysz tylko na odczyty, oddzielne indeksy zawsze powinny być szybsze. Powiązane spacery b-drzewa zbadają mniejszy zestaw kluczy itp.
Należy jednak wziąć pod uwagę kilka punktów:
- Indeksy w polach tablicy zasadniczo indeksują każdy element tablicy osobno. W związku z tym przeglądanie będzie co najwyżej 1-2 dodatkowe kroki podczas spaceru b-drzewa, co jest znikomym hitem wydajności. Innymi słowy, będą prawie tak samo szybkie.
- Posiadanie 10 indeksów może oznaczać, że każda aktualizacja/wstawienie będzie wymagać zaktualizowania więcej niż jednego indeksu (w zależności od tego, czy indeksy współdzielą pole, czy aktualizujesz więcej niż 1 sygnaturę czasową naraz). Jest to istotna kwestia dotycząca wydajności.
- Korzystanie z indeksu tablicy ułatwia dodawanie dodatkowych znaczników czasu (np. Timestamp10).
- Istnieje ograniczenie liczby przestrzeni nazw, których można użyć na bazę danych (24 KB), a każdy indeks zajmuje jeden. Jeśli utworzysz oddzielny indeks dla każdego pola, może to stać się problemem.
- Co najważniejsze, indeks tablicy jest znacznie prostszy i uprości Twój kod, a tym samym ułatwi utrzymanie. Biorąc pod uwagę ograniczone różnice w wydajności, powiedziałbym, że jest to najsilniejsza motywacja do skorzystania z indeksu tablicy.