Estou trabalhando em um projeto com um banco de dados Oracle bastante grande (embora minha pergunta se aplique igualmente a outros bancos de dados). Temos uma interface da web que permite aos usuários pesquisar em quase todas as combinações possíveis de campos.
Para tornar essas pesquisas mais rápidas, estamos adicionando índices aos campos e combinações de campos nos quais acreditamos que os usuários irão pesquisar normalmente. No entanto, como não sabemos realmente como nossos clientes usarão este software, é difícil dizer quais índices criar.
O espaço não é uma preocupação; temos uma unidade RAID de 4 terabytes, da qual usamos apenas uma pequena fração. No entanto, estou preocupado com as possíveis penalidades de desempenho por ter muitos índices. Como esses índices precisam ser atualizados sempre que uma linha é adicionada, excluída ou modificada, imagino que não seria uma boa ideia ter dezenas de índices em uma única tabela.
Então, quantos índices são considerados muitos? 10? 25? 50? Ou devo apenas cobrir os casos realmente, realmente comuns e óbvios e ignorar todo o resto?