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?
Respuestas:
Aquí hay una cita de una publicación de blog reciente de Dare Obasanjo .
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
fuente
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.
fuente
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
fuente