Pracuję nad projektem z dość dużą bazą danych Oracle (chociaż moje pytanie równie dobrze odnosi się do innych baz danych). Mamy interfejs sieciowy, który umożliwia użytkownikom wyszukiwanie w prawie każdej możliwej kombinacji pól.
Aby przyspieszyć wyszukiwanie, dodajemy indeksy do pól i ich kombinacji, w których naszym zdaniem użytkownicy będą często wyszukiwać. Ponieważ jednak tak naprawdę nie wiemy, jak nasi klienci będą korzystać z tego oprogramowania, trudno jest określić, które indeksy utworzyć.
Przestrzeń nie jest problemem; mamy 4 terabajtowy dysk RAID, z którego używamy tylko niewielkiej części. Martwię się jednak możliwymi spadkami wydajności wynikającymi z posiadania zbyt wielu indeksów. Ponieważ te indeksy muszą być aktualizowane za każdym razem, gdy dodaje się, usuwa lub modyfikuje wiersz, myślę, że byłoby złym pomysłem mieć dziesiątki indeksów w jednej tabeli.
Więc ile indeksów uważa się za zbyt wiele? 10? 25? 50? A może powinienem po prostu omówić naprawdę, naprawdę powszechne i oczywiste przypadki i zignorować wszystko inne?