sql >> Base de Datos >  >> RDS >> Mysql

¿Cuándo usar MongoDB u otros sistemas de bases de datos orientados a documentos?

En NoSQL:si fuera tan fácil , el autor escribe sobre MongoDB:

MongoDB no es un almacén de clave/valor, es mucho más. Definitivamente tampoco es un RDBMS. No he usado MongoDB en producción, pero lo he usado un poco creando una aplicación de prueba y es un equipo muy bueno. Parece tener un gran rendimiento y tiene, o tendrá pronto, tolerancia a fallas y fragmentación automática (es decir, escalará). Creo que Mongo podría ser lo más parecido a un reemplazo de RDBMS que he visto hasta ahora. No funcionará para todos los conjuntos de datos y patrones de acceso, pero está diseñado para sus cosas CRUD típicas. Almacenar lo que es esencialmente un gran hash, y poder seleccionar cualquiera de esas claves, es para lo que la mayoría de la gente usa una base de datos relacional. Si su base de datos es 3FN y no realiza ningún tipo de unión (simplemente selecciona un montón de tablas y junta todos los objetos, también conocido como lo que la mayoría de la gente hace en una aplicación web), MongoDB probablemente sería genial para usted.

Luego, en la conclusión:

Lo que hay que señalar es que si no puedes hacer algo increíble porque no puedes elegir una base de datos, lo estás haciendo mal. Si conoces mysql, solo úsalo. Optimice cuando realmente lo necesite. Úselo como una tienda k/v, úselo como un rdbms, pero por el amor de Dios, ¡construya su aplicación increíble! Nada de esto importará a la mayoría de las aplicaciones. Facebook todavía usa MySQL, mucho. Wikipedia usa MySQL, mucho. FriendFeed usa MySQL, mucho. NoSQL es una gran herramienta, pero ciertamente no será su ventaja competitiva, no hará que su aplicación sea popular y, sobre todo, a sus usuarios no les importará nada de esto.

¿Sobre qué voy a construir mi próxima aplicación? Probablemente Postgres. ¿Usaré NoSQL? Quizás. También podría usar Hadoop y Hive. Podría guardar todo en archivos planos. Tal vez empezaré a hackear Maglev. Usaré lo que sea mejor para el trabajo. Si necesito informes, no usaré NoSQL. Si necesito almacenamiento en caché, probablemente usaré Tokyo Tyrant. Si necesito ACIDity, no usaré NoSQL. Si necesito una tonelada de contadores, usaré Redis. Si necesito transacciones, usaré Postgres. Si tengo un montón de documentos de un solo tipo, probablemente usaré Mongo. Si necesito escribir mil millones de objetos al día, probablemente usaría a Voldemort. Si necesito una búsqueda de texto completo, probablemente usaría Solr. Si necesito una búsqueda de texto completo de datos volátiles, probablemente usaría Sphinx.

Me gusta este artículo, lo encuentro muy informativo, brinda una buena descripción general del panorama y la exageración de NoSQL. Pero, y esa es la parte más importante, realmente ayuda hacerse las preguntas correctas cuando se trata de elegir entre RDBMS y NoSQL. Vale la pena leer en mi humilde opinión.

Enlace alternativo al artículo