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

Como melhorar o desempenho de update() e save() no MongoDB?


É muito provável que você esteja atingindo um gargalo muito comum no MongoDB. Como você está atualizando documentos com muita frequência adicionando strings, há uma boa chance de estar ficando sem espaço para esse documento e forçando o banco de dados a mover constantemente esse documento para um espaço diferente na memória\disco reescrevendo-o no final do arquivo de dados.

Adicionar índices só pode prejudicar o desempenho de gravação, de modo que não ajudará a melhorar o desempenho, a menos que você tenha muita leitura.

Eu consideraria mudar a lógica do seu aplicativo para fazer isso:
  1. Índice no campo de palavra-chave
  2. Antes de inserir qualquer coisa no banco de dados cada vez que você detectar um tweet, consulte o documento que contém a palavra-chave. Se não existir, insira um novo documento, mas preencha os ids adicionando um monte de strings falsas no array. Então, imediatamente após inseri-lo, remova todos os ids desse array. Isso fará com que o mongodb aloque espaço adicional para todo o documento para que, quando você começar a adicionar ids ao campo ids, ele tenha muito espaço para crescer.
  3. Insira o id do tweet nos ids campo