Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/
Manual de base de datos
/

Lista de comprobación de desarrollo

La siguiente lista de verificación, junto con el Lista de verificación de operaciones para implementaciones autogestionadas, proporciona recomendaciones para ayudarte a evitar problemas en tu implementación de MongoDB en producción.

  • Asegúrate de que tu set de réplicas incluya al menos tres nodos votantes con datos y que tus operaciones de guardar utilicen w: majority nivel de confirmación de escritura (write concern). Se requieren tres nodos con votación de datos para lograr una durabilidad de datos a nivel de set de réplicas.

  • Asegúrate de que todas las instancias utilicen registrar en la bitácora.

Los datos en MongoDB tienen un esquema dinámico. Las colecciones no aplican la estructura del documento. Esto facilita el desarrollo iterativo y el polimorfismo. No obstante, las colecciones suelen contener documentos con estructuras altamente homogéneas. Consulta Conceptos de Modelado de Datos para obtener más información.

  • Determine el conjunto de colecciones que necesitará y los índices necesarios para soportar las queries. Con la excepción del índice _id, debe crear todos los índices explícitamente: MongoDB no crea automáticamente ningún índice salvo _id.

  • Asegúrate de que el diseño del esquema sea compatible con tu tipo de implementación: si planeas usar clústeres fragmentados para la escalabilidad horizontal, diseña tu esquema para incluir una clave de partición robusta. Si bien puedes cambiar tu clave de partición más adelante, es importante considerar cuidadosamente tu elección de clave de partición para evitar problemas de escalabilidad y rendimiento.

  • Asegúrate de que el diseño de esquema no dependa de arreglos indexados que puedan crecer sin límite. Por lo general, se puede lograr el mejor rendimiento cuando dichos arreglos indexados tienen menos de 1000 elementos.

  • Ten en cuenta los límites de tamaño del documento al diseñar el esquema. El límite de Tamaño de documento BSON es de 16MB por documento. Si necesita documentos más grandes, use GridFS.

  • Asegúrese de que su clave de fragmento distribuya la carga uniformemente entre sus fragmentos. ConsulteClaves de fragmento para obtener más información.

  • Usar operaciones dirigidas para cargas de trabajo que necesitan escalar con el número de particiones.

  • Secondaries no longer return orphaned data unless using read concern "available" (which is the default read concern for reads against secondaries when not associated with causally consistent sessions).
    All members of the shard replica set maintain chunk metadata, allowing them to filter out orphans when not using "available". As such, non-targeted or broadcast queries that are not using "available" can be safely run on any member and will not return orphaned data.
    The "available" read concern can return orphaned documents from secondary members since it does not check for updated chunk metadata. However, if the return of orphaned documents is immaterial to an application, the "available" read concern provides the lowest latency reads possible among the various read concerns.
  • Pre-divida y equilibra manualmente los fragmentos al insertar conjuntos de datos grandes en una nueva colección particionada no encriptada. La predivisión y el equilibrio manual permiten que la carga de inserción se distribuya entre las particiones, aumentando así el rendimiento de la carga inicial.

  • Aprovechar el agrupamiento de conexiones. La mayoría de los controladores de MongoDB admiten el agrupamiento de conexiones. Ajustar el tamaño del pool de conexiones para adaptarse a su caso de uso, comenzando en el 110-115% del número promedio de solicitudes simultáneas a la base de datos.

  • Asegúrese de que sus aplicaciones manejen errores transitorios de escritura y lectura durante las elecciones del conjunto de réplicas.

  • Asegúrate de que tus aplicaciones gestionen las solicitudes fallidas y las reintenten si es aplicable. Los drivers no reintentan automáticamente las solicitudes que han fallado.

  • Utilice la lógica de retroceso exponencial para los reintentos de solicitud de base de datos.

  • Utilice para cursor.maxTimeMS() wtimeout lecturas y para escrituras si necesita limitar el tiempo de ejecución de las operaciones de la base de datos.

Volver

Administración

En esta página