Eu sinto que isso é otimização prematura, porque nosso aplicativo ainda não foi lançado. Sugeri monitorar consultas lentas quando entrarmos no ar e adicionar índices de acordo.
Você não pode tratar os usuários finais e o ambiente de produção como garantia de qualidade. Em mais palavras, você está dizendo que descobrirá em produção. Não acho que seja o caminho certo e vejo essa abordagem terrivelmente errada todos os dias .
Você precisa ter uma coisa em mente, pois não pode pintar isso com um pincel largo.
Qual é a sua carga de trabalho comum ?
Isso pode parecer óbvio ou chato, mas é significativo na prática. Se você tiver 10 consultas que representam 98% de sua carga de trabalho (bastante comum, acredite ou não), minha recomendação seria uma análise difícil antes da produção . Com dados realistas e representativos, verifique se as 10 consultas são as melhores possíveis ( perfeita é uma perda de tempo valioso e quase impossível de ser realizada).
Para as outras 200 consultas que compõem os 2% da carga de trabalho , essas são provavelmente as que não valem muito esforço e compõem as peculiaridades da solução de problemas na produção. Isso também é uma realidade, e não uma coisa terrivelmente ruim. Mas isso não significa ignorar as práticas recomendadas de indexação nem fazer suposições estimadas sobre a recuperação de dados.
É comum e uma boa prática descobrir o desempenho do banco de dados antes da produção. De fato, existe uma posição relativamente comum para esse tipo de coisa chamada DBA de desenvolvimento .
Mas...
Alguns levam isso longe demais e ficam loucos adicionando índices "por precaução". Alguém recomenda que este índice esteja faltando? Adicione-o e outras quatro variações. Também é uma má ideia. Você precisa pensar não apenas na recuperação de dados, mas também na modificação de dados? Quanto mais índices você tiver em uma tabela, geralmente falando, mais sobrecarga você terá quando modifica dados.
Como a maioria das coisas, há um equilíbrio saudável.
Como uma pequena anotação divertida ... A pluralização de "Índice"
"Índices" são para pessoas financeiras
"Índices" são para nós