Boa tarde, Arthur!
Ótimo ponto. A otimização em bancos de dados NoSQL, é um pouco diferente do que estamos acostumados a ver em bancos SQL. Caso o index no banco NoSQL não melhore a performance, podemos adotar estratégias como:
- Desnormalização que serve para armazenar dados redundantes para evitar junções complexas. Por exemplo, em um sistema de e-commerce, poderíamos incluir informações do produto diretamente no documento de pedido, em vez de apenas uma referência.
- Fragmentação para distribuir dados em vários servidores para melhorar a escalabilidade. Por exemplo, dividir os dados de usuários em diferentes servidores com base na inicial do sobrenome.
- Caching para utilizar sistemas de cache como Redis para armazenar resultados frequentes para consultas futuras por um determinado período de tempo.
Quanto ao índice composto, no NoSQL, a abordagem é similar aos bancos SQL. Por exemplo, em MongoDB, você pode criar um índice composto assim:
db.collection.createIndex({ nome: 1, idade: 1 })
No geral, a justificativa para usar índices compostos em NoSQL é semelhante à dos bancos SQL: melhorar o desempenho das leituras, principalmente em consultas que envolvem múltiplos campos.
Caso queira se aprofundar, deixo algumas referências:
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado