He leído algún artículo dice que RDBMS como MySQL no es bueno en escalable, pero NoSQL como MongoDB puede fragmentar así. Quiero saber qué característica que el RDBMS provisto hace a sí mismo no puede fragmentar bien.NoSQL RDBMS tradicional no es bueno en escalable
Respuesta
mayoría de los sistemas RDBMS garantizan la llamada ACID properties. La mayoría de estas propiedades se reducen a consistencia; cada modificación en sus datos transferirá su base de datos de un estado consistente a otro estado consistente.
Por ejemplo, si se actualiza varios registros en una sola transacción, la base de datos se asegurará de que los registros implicados no se modificará por otras consultas, siempre que la transacción no se ha completado. Por lo tanto, durante la transacción, varias tablas pueden bloquearse para su modificación. Si esas tablas están distribuidas en múltiples fragmentos/servidores, tomará más tiempo adquirir los bloqueos apropiados, actualizar los datos y liberar los bloqueos.
Los CAP theorem estados que una (es decir, escalable) sistema distribuido no puede garantizar todas las siguientes propiedades al mismo tiempo:
- consistencia
- disponibilidad
- tolerancia partición
RDBMS los sistemas garantizan la coherencia. Sharding hace que el sistema sea tolerante a la partición. Del teorema se desprende que, por lo tanto, el sistema no garantiza la disponibilidad. Es por eso que un RDBMS estándar no puede escalar muy bien: no podrá garantizar la disponibilidad. ¿Y de qué sirve una base de datos si no puede acceder a ella?
bases de datos NoSQL caen coherencia en favor de la disponibilidad. Es por eso que son mejores en escalabilidad.
No estoy diciendo que los sistemas RDBMS no pueden escalar en absoluto, es sólo más difícil. This article describe algunos de los posibles esquemas de fusión y los problemas que puede encontrar. La mayoría de los enfoques sacrifican la coherencia, que es una de las características más importantes de los sistemas RDBMS, y que le impide escalar.
consultas que implican múltiples fragmentos son complejos (F. E. combinaciones entre tablas en diferentes fragmentos)
¿Qué sucede si nunca uso join en RDBMS? ¿RDBMS se convertirá en shard fácilmente? Si es así, parece que no es necesario implementar una nueva base de datos llamada NoSQL. – shuitu
Los RDBMS están destinados a ser un sistema de gestión para la base de datos 'relacional'. Y las relaciones entre los datos se muestran mediante JOINs entre tablas. Si no está utilizando JOINs, significa que su base de datos no es relacional, por lo que puede mover NoSQL que son almacenes de clave/valor. –
qué tipos y Dudettes NoSQL no les gustan los une: http://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/
- 1. ¿Por qué NoSQL es mejor para "escalar" que RDBMS?
- 2. NoSQL/RDBMS híbrido con integridad referencial (eliminar cascada)?
- 3. ¿Qué hace que Cassandra (y NoSQL en general) sea una mejor solución para un RDBMS?
- 4. NoSql vs Base de datos relacional
- 5. ¿Cuán escalable es Grails?
- 6. ¿Qué tan escalable es System.Threading.Timer?
- 7. ¿Qué tan escalable es Jetty?
- 8. ¿Qué tan escalable es ZeroMQ?
- 9. ¿Qué hace que Oracle sea más escalable?
- 10. ¿Qué es NoSql? ¿Cuál es el Propósito de NoSql? ¿Dónde puedo obtener material suficiente sobre NoSql?
- 11. ¿Abrió con éxito pero no es bueno?
- 12. ¿Qué es exactamente NoSQL?
- 13. Google App Engine: ¿Cuál es su RDBMS?
- 14. Ejecución escalable escalable de tareas con Redis
- 15. ¿Cuándo NO utilizar NoSQL?
- 16. ¿Es Boost IPC bueno?
- 17. Almacén de datos incrustado no relacional (nosql)
- 18. ¿Es bueno poner las operaciones de jdbc en los actores?
- 19. DisplayAttribute: No es bueno para recursos en App_GlobalResources
- 20. SQL (MySQL) vs NoSQL (CouchDB)
- 21. ¿Qué tan bueno es SecRandomCopyBytes?
- 22. ¿Por qué Sass es bueno?
- 23. ¿Es bueno learncpp.com para principiantes?
- 24. ¿Qué tan bueno es VTK?
- 25. ¿Qué tan bueno es startswith?
- 26. ¿Cuándo es bueno usar FTP?
- 27. Opción NoSql para MMORPGs
- 28. ¿Es aceptable/bueno almacenar binarios en SVN?
- 29. Buscando una implementación "at" escalable
- 30. Cola escalable de trabajo/mensaje escalable con retraso
¿Estás diciendo "compartida", o "Fragmento"? – StingyJack
¿O fragmentado? (como en Lucene)? – bmargulies
[Fragmento] (http://en.wikipedia.org/wiki/Shard_%28database_architecture%29), como en sharding su base de datos en particiones separadas. –