SQL versus noSQL(velocidad)
database nosql vs sql (6)
¿Más rápido para qué? Actualizaciones de datos? Inserciones? ¿Consultas de una sola fila? ¿Consultas complejas? La pregunta como se dice es prácticamente sin sentido. Dependiendo de lo que estés haciendo, cualquier tecnología podría ser óptima.
En resumen: No, NoSQL no es más rápido que SQL, ni SQL es más rápido que NoSQL. Cada una de ellas son diferentes tecnologías adecuadas para diferentes trabajos.
Preguntas como la suya son comunes, pero ingenuamente suponen que hay una respuesta correcta. También podríamos preguntarle a un carpintero si un martillo es mejor que un taladro o una sierra. Todas son herramientas útiles para los fines para los que fueron diseñadas. No tiene sentido usar uno u otro exclusivamente.
Cuando las personas están comparando SQL y noSQL, y concluyendo las ventajas y desventajas de cada una, lo que nunca escucho a nadie hablar es la velocidad.
¿No es más rápido realizar consultas SQL que realizar consultas noSQL?
Quiero decir, para mí esta sería una conclusión muy obvia, porque siempre debería poder encontrar algo más rápido si conoce la estructura de su base de datos que si no lo hace.
Pero la gente nunca parece mencionar esto, así que quiero saber si mi conclusión es correcta o incorrecta.
Como diría Einstein, la velocidad es relativa.
Si necesita almacenar una aplicación simple maestra / detallada (como un carrito de compras), deberá hacer varias declaraciones de inserción en su aplicación SQL, y también obtendrá un conjunto de datos de información cuando realice una consulta para obtener la compra. Si está usando NoSQL y lo está usando bien, entonces tendría todos los datos para un solo pedido en un simple "registro" (documento si usa los términos de las bases de datos NoSQL como djondb).
Entonces, realmente creo que el rendimiento de una aplicación se puede medir por la cantidad de cosas que debe hacer para lograr un solo requisito, si necesita hacer varias inserciones para almacenar un pedido y solo necesita una simple inserción en una base de datos como djondb, entonces el rendimiento será 10 veces más rápido en el mundo NoSQL, solo porque estás usando 10 veces menos llamadas a la capa de base de datos, eso es todo.
Para ilustrar mi punto, permítanme vincular un ejemplo que escribí hace algún tiempo acerca de las diferencias entre NoSQL y el enfoque de los modelos de datos SQL: http://djondb.com/blog/?p=4 , sé que es una referencia propia, pero básicamente escribí para abordar esta pregunta, la cual me parece la más difícil de todas las que podría tener un chico de RDBMS y siempre es una buena manera de explicar por qué NoSQL es tan diferente del mundo SQL, y por qué logrará un mejor desempeño en cualquier momento, no porque usemos "nasa "La tecnología se debe a que NoSQL permitirá que el desarrollador haga menos ... y obtenga más, y menos código = mayor rendimiento.
El tiempo de consulta de la base de datos relacional, como SQL para 1000 personas, es de 2000 ms y la base de datos gráfica como neo4j es de 2 ms. Si crea más nodos 1000000 velocidad estable 2 ms
La definición de sistemas noSQL es muy amplia: una base de datos que no usa SQL / no es un RDBMS. Por lo tanto, la respuesta a su pregunta es, en resumen: "depende".
Algunos sistemas noSQL son básicamente almacenamientos de clave / valor persistentes (como Project Voldemort ). Si sus consultas son del tipo "buscar el valor para una clave dada", dicho sistema será (o al menos debería ser ) más rápido que un RDBMS, porque solo necesita tener un conjunto de características mucho más pequeño.
Otro tipo popular de sistema noSQL es la base de datos de documentos (como CouchDB ). Estas bases de datos no tienen una estructura de datos predefinida. Su ventaja de velocidad se basa en gran medida en la desnormalización y en la creación de un diseño de datos que se adapta a las consultas que ejecutará en él. Por ejemplo, para un blog, puede guardar una publicación de blog en un documento junto con sus comentarios. Esto reduce la necesidad de uniones y búsquedas, haciendo que sus consultas sean más rápidas, pero también podría reducir su flexibilidad con respecto a las consultas.
La respuesta es, depende. En general, el objetivo de las BASES DE DATOS NoSQL (sin "consultas") es la escalabilidad. Por lo general, los RDBMS tienen límites estrictos en algún punto (me refiero a millones y millones de filas) en los que ya no se puede escalar más por medios tradicionales (replicación, agrupamiento, partición) y necesita algo más porque sus necesidades siguen creciendo. O incluso si logra escalar, la configuración general es bastante complicada. O puedes escalar las lecturas, pero no las escrituras.
Y las consultas dependen de la implementación particular de su servidor, el tipo de consulta que está haciendo, las columnas en la tabla, etc. Recuerde que las consultas son solo una parte del RDBMS.
Las personas que tienden a usar noSQL lo usan específicamente porque se ajusta a sus casos de uso. Al estar divorciado de las relaciones y restricciones normales de la tabla RDBMS, así como de la ACID de los datos, es muy fácil hacer que se ejecute mucho más rápido.
Considere Twitter, que usa NoSQL porque un usuario solo hace cosas muy limitadas en el sitio, o una exactamente: tweet. Y la concurrencia puede considerarse inexistente ya que (1) nadie más puede modificar tu tweet y (2) normalmente no estarás tuiteando simultáneamente desde múltiples dispositivos.