Por que minhas consultas do MongoDB são realmente muito lentas?

8

Eu herdei um grande servidor MongoDB no trabalho e fui encarregado de descobrir por que as consultas executadas são tão lentas. O DB contém toneladas e toneladas de registros (na ordem de 10 ^ 9) e ocupa cerca de 300 GiB. No começo, achei que o número bruto de registros poderia ter sido o culpado, por isso configurei índices em campos apropriados. Isso ajudou muito as consultas que estavam procurando por critérios que estavam no banco de dados, mas levariam de 80 a 90 minutos para consultas em que não haveria correspondências. Alguma idéia de como lidar com isso?

    
por Mark LeMoine 10.11.2010 / 22:27

4 respostas

5

Parece que você está perdendo um índice importante, especialmente porque a consulta sem correspondência está demorando muito mais do que uma consulta com correspondências. Que tipo de consulta é? Talvez você precise de um índice composto? Você está usando where como parte da consulta?

Eu não sou especialista em MongoDB, mas 80-90 minutos é absolutamente anormal. Eu não sei o que o MongoDB "soa" para a Arenstar, mas foi mostrado que ele lida com bilhões de documentos (terabytes de dados) .

    
por 15.11.2010 / 16:46
4

Isso pode ser tarde demais para uma resposta, mas achei que valeu a pena mencionar. Existem ferramentas como mongostat que podem ser usadas para ver o que realmente está acontecendo. Muitas falhas de índice, muitas falhas de página. Se você estiver executando operações simultâneas de leitura e gravação, também deverá procurar porcentagem de bloqueio. 300 GB não é uma quantia enorme para o mongodb manipular. Pode facilmente ir muito além disso.

Outros comandos úteis:

    db.stats();
    db.currentOp();
    
por 14.08.2012 / 14:49
2
por 14.08.2012 / 15:08
-5

MongoDb é webscale .. Desculpe, tive que dizer isso ..

Nenhuma correspondência provavelmente demora um pouco com base em talvez uma varredura de intervalo ???

Eu iria dividi-lo .. Mongo não soa como um DB para lidar com 300GB, e provavelmente ainda não é maduro o suficiente para saber como ele age com grandes quantidades de dados.

Por que motivo você está usando o Mongo ??

    
por 10.11.2010 / 22:35