Definiciones
Si bien su declaración sobre el estado de las cosas no está completamente equivocada, no creo que realmente capture la distinción primaria MySQL / NoSQL. Su descripción toma más de un enfoque pro-NoSQL de lo que creo que la realidad justifica. Lo pondría de esta manera:
Bases de datos relacionales (por ejemplo, MySQL)
- Las bases de datos relacionales son excelentes para mantener datos estructurados y normalizados.
- Para la gran mayoría de los usos (como 99% o más), las bases de datos relacionales se escalan con bastante facilidad (escala vertical + replicación de esclavos
- Incluso para casos de uso de alto rendimiento, las bases de datos relacionales pueden escalar (ver Facebook), pero requiere un poco de esfuerzo. (Pero no necesariamente mucha mano de obra; de nuevo, vea Facebook)
NoSQL
- ¿Existe una correlación entre el código feo y el código que se escribió rápidamente?
- ¿Cómo es el futuro del probador de software?
- ¿Qué significa el desarrollo API-first?
- ¿Qué dificultades uno enfrenta para saborear este éxito?
- ¿Qué es un software vocus?
- Las bases de datos NoSQL son excelentes para contener datos menos estructurados; específicamente donde un grupo de elementos de datos se adjunta a una clave única y se recupera mediante esa clave única
- Teóricamente, las bases de datos NoSQL escalan “sin esfuerzo”. (En la práctica, estaría totalmente en desacuerdo con “sin esfuerzo”, pero esperaría que en unos años, el escalado se acerque “sin esfuerzo” … y algunas de las arquitecturas NoSQL son ciertamente mejores para un escalado fácil que cualquier base de datos relacional, MongoDB en particular ) (Es de destacar que es muy fácil escalar en las bases de datos NoSQL alojadas, como SimpleDB, pero eso es solo porque la empresa que realiza el alojamiento ha hecho el trabajo duro por usted)
- Las bases de datos NoSQL no son buenas formas de manejar datos altamente estructurados
- [en soapbox] Creo que las bases de datos NoSQL se consideran mejor como bases de datos de “redes sociales” y “rastreadores de documentos / web”, y que la gran mayoría de otros datos son mejores en bases de datos relacionales. Debido a que Silicon Valley está tan de moda para todo “social” en este momento, NoSQL parece tan relevante, si no más relevante, para todos los casos de uso de bases de datos, cuando en realidad, es solo la solución adecuada para una pequeña minoría de casos de uso de bases de datos. [/ fuera de la caja de jabón]
NewSQL
- Matthew Aslett acuñó “NewSQL” en una publicación de blog (http://blogs.the451group.com/inf…), y esencialmente define NewSQL como productos que hacen que las bases de datos relacionales sean tan fáciles de escalar como las bases de datos NoSQL son / deberían ser.
- Hay tres formas en que los proveedores de NewSQL pueden alcanzar este estado “NewSQL”: (1) como complemento de las bases de datos relacionales existentes (como ScaleBase), (2) como una base de datos relacional alojada (como Xeround o NuoDB) o (3 ) como una nueva base de datos relacional independiente (como VoltDB)
Responder
Ok, con las definiciones anteriores, puedo responder a su pregunta: “¿Por qué alguien debería usar NoSQL con NewSQL?” Y la respuesta es bastante simple: si tiene datos menos estructurados, las bases de datos NoSQL serán mejores para usted que MySQL. No me importa lo increíbles que sean VoltDB o NuoDB; Twitter va a estar mejor con NoSQL directo, porque la arquitectura de NoSQL es mejor para los datos que Twitter almacena y recupera.
Entonces, tal vez una mejor pregunta sería: “¿Por qué alguien debería usar una base de datos relacional si los sistemas NewSQL funcionan como se anuncia?” Creo que hay al menos dos razones: (1) costo (ninguno de los sistemas NewSQL, si desea ampliarlos significativamente, son gratuitos), y (2) complejidad: lanzar una pila LAMP hoy es increíblemente fácil, y hay mucho soporte para el viejo MySQL 5.x en todo; NewSQL es de última generación.
Divulgación: en BuildFax, utilizamos ScaleBase y somos grandes admiradores.