Digamos que estamos diseñando un nuevo sistema y hemos decidido utilizar MongoDB como base de datos primaria. El esquema de datos es muy similar a un blog con [creciente] comentarios.Rendimiento de MongoDB con una estructura de datos en crecimiento
En el libro "Desarrolladores de MongoDB", Consejo # 6: No incruste campos que tienen crecimiento independiente, dice que es ineficaz agregar datos constantemente al final de una matriz (pero también insinuó que los comentarios son un " caja de borde extraña ").
Digamos que nuestro nuevo sistema es como esos "comentarios" en un blog, creciendo dinámicamente todo el tiempo, pero a veces cambiando o borrándolos.
Entonces, habiendo reconocido que podría haber un problema de rendimiento con MongoDB, ¿qué otra base de datos alternativa (debe ser una base de datos escalable horizontalmente) podría servir para este propósito? . (No nos importa usando MongoDB como nuestra base de datos principal, pero separado los "comentarios" a una base de datos alternativa ¿Cuáles son las opciones disponibles
Notas:?
La característica de tener Redis hashes como sus tipos de datos encaja con la descripción de nuestra estructura de datos de "comentarios" - en constante crecimiento pero a veces modificada o eliminada - PERO no necesitamos una base de datos pura en memoria (no queremos dedicar tanta RAM cuando los datos pueden persistir en el disco)) - de lo contrario, esto sería una buena opción para nuestro problema
¿Qué pasa con el uso de CouchDB? No se investigó sobre este producto. ¿Cómo funciona con una estructura de datos en crecimiento?
Me molestó un poco el consejo original, me parece que querrías hacer esto en un documento db, de lo contrario volverás a un enfoque de tablas. ¿Sabes cuántas veces se tendrá que mover el documento si, por ejemplo, una matriz comienza en 0 y crece a 1000 (un elemento, por ejemplo, que se agrega una vez al día)? – UpTheCreek
Si se trata de un conjunto de tamaños fijo o conocido, puede rellenarlo manualmente, llenarlo con datos falsos inicialmente y luego eliminar los datos falsos. Eso significaría que no desencadenaría un movimiento hasta que excediera ese límite.En términos de qué tan seguido ocurrirá de otra manera, debido a cómo se calcula el factor de relleno, eso depende del tamaño del documento y del uso de la colección (en función de una proporción de movimientos a operaciones sin movimiento) –