sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo mejorar el rendimiento de update() y save() en MongoDB?

Es muy probable que te encuentres con un cuello de botella muy común en MongoDB. Dado que está actualizando documentos con mucha frecuencia agregando cadenas, es muy probable que se esté quedando sin espacio para ese documento y obligando a la base de datos a mover constantemente ese documento a un espacio diferente en la memoria\disco reescribiéndolo al final del archivo de datos.

Agregar índices solo puede dañar el rendimiento de escritura, por lo que no ayudará a mejorar el rendimiento a menos que lea mucho.

Consideraría cambiar la lógica de su aplicación para hacer esto:

  1. Índice en el campo de palabra clave
  2. Antes de insertar algo en la base de datos cada vez que detecte un tweet, consulte el documento que contiene la palabra clave. Si no existe, inserte un nuevo documento pero rellene los ids propiedad agregando un montón de cadenas falsas en la matriz. Luego, inmediatamente después de insertarlo, elimine todas las identificaciones de esa matriz. Esto hará que mongodb asigne espacio adicional para todo el documento, de modo que cuando comience a agregar identificaciones al campo de identificaciones, tendrá suficiente espacio para crecer.
  3. Inserte la identificación del tweet en los ids campo