SQL (MySQL) vs NoSQL (CouchDB) [cerrado]

126

Estoy diseñando una aplicación altamente escalable que debe almacenar muchos datos. Solo por ejemplo, almacenará mucho sobre los usuarios y luego cosas como muchos de sus mensajes, comentarios, etc. Siempre he usado MySQL antes, pero ahora tengo la intención de probar algo nuevo como couchdb o similar que no sea SQL.

¿Alguien tiene alguna idea u orientación sobre esto?

christophmccann
fuente
3
Gah, CW. Y esperaba obtener un representante real y algo de credibilidad callejera aquí. :-)
Franci Penov
1
¿Puedes explicar un poco más sobre tu conjunto de datos?
mikeal 01 de
44
Desearía que esto no tuviera que estar cerrado. Es importante hacer estas preguntas, pero por alguna razón no pertenecen a SO.
Neil Chowdhury

Respuestas:

191

Aquí hay una cita de una publicación de blog reciente de Dare Obasanjo .

Las bases de datos SQL son como la transmisión automática y las bases de datos NoSQL son como la transmisión manual. Una vez que cambia a NoSQL, se hace responsable de una gran cantidad de trabajo que el sistema realiza automáticamente en un sistema de base de datos relacional. Similar a lo que sucede cuando elige la transmisión manual sobre la automática. En segundo lugar, NoSQL le permite obtener más rendimiento del sistema al eliminar muchas comprobaciones de integridad realizadas por las bases de datos relacionales del nivel de la base de datos. Nuevamente, esto es similar a cómo puede obtener más rendimiento de su automóvil conduciendo una transmisión manual en lugar de un vehículo de transmisión automática.

Sin embargo, la similitud más notable es que, al igual que la mayoría de nosotros, realmente no podemos aprovechar los beneficios de un vehículo de transmisión manual porque la mayoría de nuestra conducción está sentada en el tráfico en el camino hacia y desde el trabajo, existe una dura realidad similar ya que la mayoría de los sitios no están a la escala de Google o Facebook y, por lo tanto, no necesitan Bigtable o Cassandra.

A lo que puedo agregar solo ese cambio de MySQL, donde tiene al menos algo de experiencia, a CouchDB, donde no tiene experiencia, significa que tendrá que lidiar con un conjunto completamente nuevo de problemas y aprender diferentes conceptos y mejores prácticas. Si bien esto es maravilloso (estoy jugando en casa con MongoDB y me gusta mucho), será un costo que debe calcular al estimar el trabajo para ese proyecto, y trae riesgos desconocidos y promete beneficios desconocidos. Será muy difícil juzgar si puede hacer el proyecto a tiempo y con la calidad que desea / necesita para tener éxito, si se basa en una tecnología que no conoce.

Ahora, si tienes en el equipo un experto en el campo NoSQL, entonces, por supuesto, échale un buen vistazo. Pero sin ninguna experiencia en el equipo, no salte a NoSQL para un nuevo proyecto comercial.

Actualización : solo para arrojar un poco de gasolina al fuego abierto que comenzó, aquí hay dos artículos interesantes de personas en el campamento de SQL. :-)

No puedo esperar a que NoSQL muera (el artículo original desapareció, aquí hay una copia )
Fighting The NoSQL Mindset, aunque esta no es una
actualización de pieza anti-NoSQL : Bueno, aquí hay un artículo interesante sobre NoSQL
Making Sense of NoSQL

Franci Penov
fuente
2
El proceso de escalar soluciones SQL es el proceso de eliminar características y relaciones. Así que no creo que esta sea una evaluación completamente justa. Además, no agruparía las bases de datos NoSQL de esta manera, Cassanda, por ejemplo, se enfoca únicamente en escalar , mientras que CouchDB se preocupa por escalar la API hacia abajo y facilitar su uso e intenta permitir que esa API se escale lo más posible.
mikeal 01 de
¿Podría ser este el enlace a la cita? 25hoursaday.com/weblog/2010/03/29/…
edosoft
Ah, sí, de hecho. Eché de menos que él también lo publicara en un blog público. Actualizaré la publicación.
Franci Penov
1
¡Gracias por la publicacion! El enlace "No puedo esperar a que NoSQL muera" no funciona para mí, es posible que desee comprobarlo.
kbpontius
"ha cambiado una lista bien enumerada de limitaciones y verrugas por una lista de limitaciones y verrugas más nueva y mal entendida" - No puedo esperar a que NoSQL muera
Yarin
3

Parece que hoy en día solo las soluciones reales giran en torno a escalar o fragmentar. Todas las bases de datos modernas (NoSQL y NewSQL) admiten la escala horizontal desde el primer momento, en la capa de la base de datos, sin la necesidad de que la aplicación tenga código de fragmentación o algo así.

Desafortunadamente, para el MySQL de confianza, el fragmentación no se proporciona "fuera de la caja". ScaleBase (descargo de responsabilidad: trabajo allí) es un creador de una solución completa de escalamiento horizontal, una "máquina de fragmentación automática" si lo desea. ScaleBae analiza sus datos y su flujo SQL, divide los datos en nodos de base de datos y los agrega en tiempo de ejecución, ¡para que no tenga que hacerlo! Y es de descarga gratuita.

¡No me malinterpreten, los NoSQL son geniales, son nuevos, nuevos son más opciones y la elección siempre es buena! Pero elegir NoSQL tiene un precio, asegúrese de poder pagarlo ...

Puede ver aquí más datos sobre MySQL, NoSQL ...: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding

Espero que haya ayudado.

Doron Levari
fuente
0

Una de las mejores opciones es optar por MongoDB (NOSql dB) que admite escalabilidad. Almacena grandes cantidades de datos más que bigdata en forma de documentos a diferencia de filas y tablas en sql. Esto es más rápido que sigue el fragmentación de los datos. para garantizar la garantía de datos que mantiene múltiples servidores que tienen el servidor db primario como base. Idioma independiente. Flexible de usar

Kiranmai Harshi
fuente
Debe hacer una copia de seguridad de su opinión a "mejor" porque Couchbase, Cassandra, AeroSpike, etc. y todas las bases de datos que admiten las funciones que menciona.
OneCricketeer