Advertencia: La respuesta a continuación está un poco simplificada, para fines pedagógicos. Elegir una solución de almacenamiento para su aplicación es un problema muy complejo, y cada caso será diferente; esto solo tiene como objetivo brindar una visión general de la razón principal por la cual las personas se vuelven NoSQL.
Hay varias razones posibles por las que las empresas se vuelven NoSQL, pero el escenario más común es probablemente cuando un servidor de base de datos ya no es suficiente para manejar su carga. Las soluciones noSQL son mucho más adecuadas para distribuir la carga sobre cargas de mierda de servidores de bases de datos.
Esto se debe a que las bases de datos relacionales tradicionalmente se ocupan del equilibrio de carga por replicación . Eso significa que tiene múltiples bases de datos esclavas que observan una base de datos maestra para detectar cambios y replicarlos en sí mismos. Las lecturas se hacen de los esclavos y las escrituras se hacen al maestro. Esto funciona hasta cierto nivel, pero tiene el efecto secundario molesto de que los esclavos siempre van a la zaga, por lo que hay un retraso entre el momento de la escritura y el tiempo que el objeto está disponible para la lectura, que es complejo y error Propenso a manejar en su aplicación. Además, el maestro único eventualmente se convierte en un cuello de botella, no importa cuán poderoso sea. Además, es un solo punto de falla.
- ¿Serán inútiles los desarrolladores web dentro de 20-40 años (2016)?
- ¿Cuáles son las ventajas de usar Extensible Markup Language (XML)?
- ¿Por qué son importantes las pruebas de seguridad de aplicaciones web?
- ¿Qué es un buen diseño de arquitectura para aplicaciones web?
- Si Java es más rápido que JavaScript, ¿por qué la era de las aplicaciones web de Spring falló tan miserablemente?
NoSQL generalmente trata este problema mediante fragmentación . Simplificado en exceso significa que los usuarios con ID de usuario 1-1000000 están en el servidor A, y los usuarios con ID de usuario 1000001-2000000 están en el servidor B y así sucesivamente. Esto resuelve los problemas que tiene la replicación relacional, pero el inconveniente es que características como las consultas agregadas (SUM, AVG, etc.) y las transacciones tradicionales se sacrifican.
Para algunos casos de estudio, creo que Couchbase presenta un libro blanco en su sitio web aquí: http://www.couchbase.com/why-nos…