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

Actuaciones de MongoDB:¿cuántas bases de datos, colecciones?

Enfoque 1(A): Crear una única base de datos para todo. (Con colección única)

Ventajas:

  • Menos mantenimiento:copia de seguridad, creación de usuarios de bases de datos, restauración, etc.

Desventajas:

  • Es posible que vea bloqueo de nivel de base de datos para crear índices en bases de datos grandes
  • Para realizar operaciones en datos de sensores específicos, debe agregar índices adicionales para obtener solo la recopilación específica del sensor
  • Está obligado a crear no más de 64 índices en una sola colección. Aunque suena como una mala estrategia de indexación.

Enfoque 1(B): Crear una única base de datos para todo. (Con 1 colección para cada sensor)

Ventajas:

  • Menos mantenimiento:copia de seguridad, creación de usuarios de bases de datos, restauración, etc.
  • Minimiza la necesidad de crear índices para identificar datos específicos del sensor de toda la colección monolítica
  • Cada consulta específica del sensor solo se orientará a una colección específica. No requiere extraer un gran conjunto de trabajo en la memoria en comparación con una sola colección grande.
  • Crear un índice en una colección relativamente más pequeña es más factible que una colección grande en una sola base de datos

Desventajas:

  • Es posible que termine creando demasiados índices. (Suma del número total de índices en todas las colecciones).
  • Se requiere más mantenimiento para una gran cantidad de índices.
  • WiredTiger crea 1 archivo para una colección y 1 para el índice internamente. Si su caso de uso crece con una gran cantidad de sensores. Puede terminar usando el límite de archivos abiertos de 64K.

En cuanto al rendimiento, ¿importa si divido los datos por cada sensor o por métrica?

  • Esto depende de los patrones de acceso esperados de su aplicación de análisis.

En cuanto al rendimiento, ¿debería hacer una colección solo para la información de los sensores y luego colecciones de datos o simplemente fusionar las dos en la misma colección?

  • Puede ser necesario crear una colección de metadatos de sensores y datos de sensores. Minimizará la duplicación de metadatos de sensores en todos y cada uno de los datos de sensores recopilados.

  • Puede que le guste leer Publicación de blog de Williams aquí en el diseño de este patrón.

Como siempre, es mejor diseñar un esquema de muestra y probar sus consultas dentro de su entorno de prueba.