Estaba buscando mover la API Estoy seguro con la aplicación de desbordamiento de pila de iphone que escribí hace un tiempo en MongoDB desde donde actualmente se encuentra en una base de datos MySQL. En forma cruda, el volcado de SO CC está en el rango de varios gigabytes y la forma en que construí los documentos para MongoDB resultó en una base de datos 10G +. Es discutible que no construí bien los documentos, pero no quería perder mucho tiempo haciendo esto.
Una de las primeras cosas que encontrará en este camino es la falta de soporte de 32 bits. Por supuesto, todo se está moviendo a 64 bits ahora, pero algo a tener en cuenta. No creo que ninguna de las principales bases de datos de documentos admita paginación en el modo de 32 bits y eso es comprensible desde el punto de vista de la complejidad del código.
Para probar lo que quería hacer utilicé un nodo EC2 de instancia de 64 bits. Lo segundo que encontré es que a pesar de que esta máquina tenía 7G de memoria cuando se agotó la memoria física, las cosas pasaron de rápidas a no tan rápidas. No estoy seguro de que no haya configurado algo incorrectamente en este punto porque la falta de compatibilidad con el sistema de 32 bits mató para lo que quería usarlo, pero aún quería ver cómo era. Cargar el mismo volcado de datos en MySQL lleva unos 2 minutos en un cuadro mucho menos potente, pero el script que utilicé para cargar las dos bases de datos funciona de manera diferente, así que no puedo hacer una buena comparación. Ejecutar solo un subconjunto de los datos en MongoDB era mucho más rápido, siempre y cuando se obtuviera una base de datos que era inferior a 7G.
Creo que mi conclusión fue que las grandes bases de datos funcionarán bien, pero puede que tenga que pensar cómo se estructuran los datos más de lo que lo haría con una base de datos tradicional si desea mantener el alto rendimiento.Veo mucha gente usando MongoDB para el registro y me imagino que muchas de esas bases de datos son masivas, pero al mismo tiempo pueden no tener acceso aleatorio, lo que puede enmascarar el rendimiento de aplicaciones más tradicionales. .
Un recurso reciente que podría ser útil es el visual guide to nosql systems. Hay un número decente de opciones fuera de MongoDB. También he usado Redis aunque no con una base de datos tan grande.
TBH con ORM como Hibernate haciendo un trabajo fantástico de abstraer este tipo de cosas de distancia Realmente no veo el punto. –
MongoDB no está realmente compitiendo con NHibernate y las bases de datos relacionales en la mayoría de los casos. Mira la lista de casos de uso a la que me he vinculado. Las bases de datos relacionales son realmente horribles para algunas situaciones y estas bases de datos alternativas son mejores soluciones. El OP puede ser incorrecto en su uso del término bases de datos de objetos aquí también. –
640K debería ser suficiente para cualquier persona. –