¿Por qué es NoSQL más rápido que SQL?

43

Recientemente me preguntaron:

  

¿Por qué NoSQL es más rápido que SQL?

No estaba de acuerdo con la premisa de la pregunta ... es una tontería para mí personalmente. No puedo ver ningún aumento de rendimiento utilizando NoSQL en lugar de SQL. Tal vez SQL sobre NoSQL, sí, pero no de esa manera.

¿Me estoy perdiendo algo sobre NoSQL?

    
pregunta Cynede 12.11.2012 - 10:55

8 respuestas

60

Hay muchas soluciones NoSQL alrededor, cada una con sus propias fortalezas y debilidades, por lo que lo siguiente debe tomarse con un grano de sal.

Pero esencialmente, lo que hacen muchas bases de datos NoSQL es confiar en la desnormalización y tratar de optimizar para el caso desnormalizado. Por ejemplo, supongamos que está leyendo una publicación de blog junto con sus comentarios en una base de datos orientada a documentos. A menudo, los comentarios se guardarán junto con la publicación. Esto significa que será más rápido recuperarlos todos juntos, ya que se almacenan en el mismo lugar y no es necesario realizar una unión.

Por supuesto, puede hacer lo mismo en SQL, y la desnormalización es una práctica común cuando uno necesita rendimiento. Es solo que muchas soluciones NoSQL están diseñadas desde el principio para ser utilizadas siempre de esta manera. Luego, obtienes las ventajas y desventajas habituales: por ejemplo, agregar un comentario en el ejemplo anterior será más lento porque debes guardar todo el documento con él. Y una vez que ha desnormalizado, debe cuidar de preservar la integridad de los datos en su aplicación.

Además, en muchas soluciones NoSQL, es imposible hacer combinaciones arbitrarias, por lo tanto consultas arbitrarias. Algunas bases de datos, como CouchDB, requieren que piense antes de las consultas que necesitará y las prepare dentro de la base de datos.

En general, se reduce a esperar un esquema desnormalizado y la optimización de las lecturas para esa situación, y esto funciona bien para los datos que no son altamente relacionales y que requieren muchas más lecturas que escrituras.

    
respondido por el Andrea 12.11.2012 - 11:19
24

Lo que te falta de NoSQL es que NoSQl no puede compararse con SQL de ninguna manera. NoSQL es el nombre de todas las tecnologías de persistencia que no son SQL. Las bases de datos de documentos, bases de datos de valor-clave, bases de datos de eventos son todas NoSQL. Todos son diferentes en casi todos los aspectos, ya sea la estructura de los datos guardados, las consultas, el rendimiento y las herramientas disponibles.

Entonces, si alguien te hace esa pregunta en una entrevista, esta debería ser la respuesta.

    
respondido por el Euphoric 12.11.2012 - 10:58
15

Las bases de datos 'NoSQL' (o, más precisamente, no relacionales) renuncian a algunas características de las bases de datos tradicionales para obtener velocidad, pero lo más importante para la escalabilidad horizontal.

Las características que faltan dependen del producto concreto, en general las propiedades completas de ACID o incluso las operaciones de unión no son compatibles. Ese es el precio por el aumento de rendimiento.

    
respondido por el Karl 12.11.2012 - 11:01
8

Tienes razón, sería una tontería afirmarlo en una declaración general. Que es probablemente el punto entero; En lugar de una sola respuesta, es probable que el entrevistador espere que responda con preguntas para ayudarlo a determinar cuál es el contexto del problema (qué tipo de datos, qué cantidad, en qué entorno operativo, etc.), la solución particular de NoSQL. . Intentarán descubrir cómo analizas los problemas y, en el camino, te darán una idea de cuánto sabes sobre las diferentes soluciones que hay.

    
respondido por el Eelco 12.11.2012 - 19:03
4

Las bases de datos NoSQL normalmente solo tienen sentido si diseñas los datos a su alrededor.

Si tiene la intención de usarlos simplemente como reemplazo de RDBMS, es posible que obtenga menos rendimiento en lugar de más, especialmente si no tiene suficiente presupuesto para pagar servidores con una gran cantidad de RAM.

Vea este artículo que compara el uso del espacio en disco de MySQL con el de MongoDB: enlace

    
respondido por el Clifford 14.11.2012 - 08:53
3

¿Qué base de datos NoSQL? ¿Qué base de datos SQL? Si alguien te dice que NoSQL es más rápido que SQL, entonces debes alejarte. O mejor aún, mira este video:

enlace

No diré que la mitad de las afirmaciones sobre NoSQL son incorrectas, pero diré que hay mucho fanboyismo de NoSQL de personas que realmente no lo entienden muy bien.

SQL tiene sus límites (por supuesto) pero también es una tecnología muy madura, que se comprende bien, y tiene un gran grupo de desarrolladores que entienden cómo usarlo bien. No puedo decir lo mismo para todas las formas de NoSQL.

    
respondido por el Zachary K 04.09.2013 - 06:25
-2

NoSql es compatible con las bases de datos orientadas a columnas donde RDBMS es una base de datos orientada a filas ... Y digamos, por ejemplo, que tenemos una tabla de Empleado con Nombre, Edad, Dirección, Dirección, EmployeeId, etc. ) y HBase (soporte NoSQL). Si un cliente / cliente escribe una consulta para obtener los detalles promedio de Edad o Salomería de los registros de los empleados de 1Lakh ... ¿qué sucede?

En RDBMS, rodeará cada fila y recopilará el valor y la suma & dividir por resultado. Cuando se trata de la base de datos Columnar, no tiene que preocuparse por todas las iteraciones de una fila de lakh. Pero trate con una sola fila que sea más rápida de calcular. Así que de esta manera a veces NoSQL es más rápido que SQL. ¡A este caso, NoSQL no le importa que valgan las quejas de ACID!

    
respondido por el kiran teja avvaru 04.09.2013 - 05:52
-3

Olvídese de la teoría en torno a las bases de datos ... una vez que entienda sus consultas, puede guardar los datos en las bases de datos nosql de la manera exacta en que se utilizan en su aplicación ...

Por ejemplo, tome este ejemplo, tiene un modelo de cliente con muchos pedidos y muchos artículos asociados con cada pedido, luego también tiene muchos artículos guardados para compras posteriores ... si usted es una gran tienda de comercio electrónico, digamos 10 millones. Clientes y 50 millones de pedidos. Y ese cliente inicia sesión en su panel de control que muestra estos datos exactos, cuánto trabajo tendrá que hacer una base de datos SQL para encontrar al cliente, unir los pedidos y cada artículo de línea y los artículos guardados. En una base de datos SQL, es probable que todos estos datos deban unirse de alguna manera ... o puede crear una colección en su base de datos llamada usercache y guardar esta información exactamente como la usa en la vida real. Por lo tanto, esto realmente puede ser una única consulta en un solo campo [id] para recuperar todos estos datos. Además de eso, la base de datos nosql no necesita enviar la consulta a los 40 servidores de base de datos para recuperar la información, solo aquellos que realmente tienen los datos.

Entonces, ¿puede un db sql consultar un solo campo de Id. tan rápido como no más rápido que nosql? Sí, pero ¿puede una base de datos SQL devolver todos los datos que necesita consultando una tabla y un campo? No, a menos que haga algo como guardar los datos en Json dentro de un campo de texto grande. Pero ahora esos datos no pueden ser consultados para un posible uso futuro.

    
respondido por el Steffan Perry 30.04.2017 - 18:06

Lea otras preguntas en las etiquetas

Comentarios Recientes

NoSQL hace que sea mucho más fácil consultar la memoria. También es más resistente. Hay alguna promesa, pero es lento como el infierno en comparación con una solución operativa. NoSQL es el lenguaje elegido porque ofrece una consulta eficiente. En lenguajes transaccionales como SQL, debe esperar a que se completen las transacciones, ¿y si una transacción no se completa incluso si no la detiene? Existen soluciones alternativas redundantes, problemas con los mensajes, etc., etc. Para NoSQL, puede paralelizar cualquier... Lee mas