MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Problema de desempenho do MongoDB:uma única coleção enorme versus várias coleções pequenas


Separar as coleções fornece um índice gratuito sem nenhuma sobrecarga real. Há sobrecarga para uma verificação de índice, especialmente se o índice não estiver realmente ajudando você a reduzir o número de resultados que precisa verificar (se você tiver um milhão de resultados no índice, mas precisar verificar todos e inspecioná-los, não vai te ajudar muito).

Em suma, separá-los é uma otimização válida, mas você deve melhorar seus índices para suas consultas antes de decidir realmente seguir esse caminho, o que considero uma medida drástica (um índice de preço do produto pode ajudá-lo mais neste caso) .

O uso de explain() pode ajudá-lo a entender como as consultas funcionam. Alguns princípios básicos são:Você quer uma proporção baixa de nscanned para n, idealmente. Você não quer scanAndOrder =true, e você não quer BasicCursor, geralmente (isso significa que você não está usando um índice).