Eu herdei um grande servidor MongoDB no trabalho e fui encarregado de descobrir por que as consultas executadas nele são tão lentas. O banco de dados contém toneladas e toneladas de registros (da ordem de 10 ^ 9) e ocupa cerca de 300 GiB. No começo, pensei que o número bruto de registros pudesse ter sido o culpado, então configurei índices nos campos apropriados. Ajudou bastante as consultas que procuravam por critérios que estavam no banco de dados, mas levaria de 80 a 90 minutos para consultas onde não havia correspondências. Alguma idéia de como lidar com isso?
9
Respostas:
Parece que está faltando um índice importante, principalmente porque a consulta sem correspondências está demorando muito mais do que uma consulta com correspondências. Que tipo de consulta é essa? Talvez você precise de um índice composto? Você está usando
where
como parte da consulta?Não sou especialista em MongoDB, mas 80-90 minutos são absolutamente anormais. Não sei como o MongoDB "soa" para o Arenstar, mas foi mostrado para lidar com bilhões de documentos (terabytes de dados) .
fonte
Pode ser tarde demais para uma resposta, mas achei que valeria a pena mencionar. Existem ferramentas como o mongostat que podem ser usadas para ver o que realmente está acontecendo. Muitos erros de índice, muitas falhas de página. Se você estiver executando operações simultâneas de leitura e gravação, também deverá procurar a porcentagem de bloqueio. 300 GB não é uma quantidade enorme para o mongodb lidar. Pode facilmente ir muito além disso.
Outros comandos úteis:
fonte
Veja a página do MongoDB Database Profiler , particularmente a seção Otimizando o desempenho da consulta .
fonte
MongoDb é webscale .. Desculpe tive que dizer isso ..
Provavelmente, nenhuma correspondência demora um pouco com base em talvez uma varredura de intervalo ???
Eu o detalharia .. O Mongo não parece um banco de dados para lidar com 300 GB e provavelmente ainda não está maduro o suficiente para saber como ele atua com grandes quantidades de dados.
Por que motivo você está usando o Mongo ??
fonte