Blog

>NoSQL

Está claro que el término ”NoSQL” está de moda…

De hecho, basta con darse una vuelta por cualquier foro para encontrarse con todo tipo de comentarios destacando las virtudes de este “nuevo enfoque“.

Como la mejor forma de ver si algo nos sirve es probarlo directamente, hemos decidido hacer una prueba. En alguna ocasión, algún cliente nos ha hablado de la limitación de escritura de datos de MySQL, por lo tanto, queríamos comparar la velocidad de MySQL con la de una base de datos NoSQL.

La primera pregunta que surge es… ¿qué usamos como NoSQL?

Hay una comparativa entre distintas opciones aquí. En nuestro caso, nos convence Redis, por el soporte que da a tipos de datos como listas, hash, etc. Por lo que comentan en su web, Redis es un almacén clave/valor rápido y muy optimizado, que proporciona además algunos tipos de datos complejos (a día de hoy: strings, listas, sets, hashes, sorted sets). En un principio, funciona en memoria aunque tiene varios sistemas de volcado a disco en segundo plano. La instalación no tiene mucho misterio, ya que basta ir a su propia página para descargar la última versión.

Tras preparar un script que realiza “inserts” en MySQL, vemos que en nuestro servidor (bastante baratillo) el número de “insert” es de unos 6500/segundo.

Redis trae su propia herramienta de “benchmarking”, por lo que simplifica esta medida. Si la ejecutamos, vemos que llegamos a unos 15000 “MSET” (cambiar el valor de una “key”, lo que sería el equivalente de un “insert” o un “update”) por segundo. Es decir, mejoramos tres veces el rendimiento.

Por lo tanto, si quisiéramos mejorar el rendimiento de escritura de la base de datos de nuestro sistema, tendríamos dos opciones: mejorar la introducción de datos en MySQL (siempre se puede optimizar, ver por ejemplo aquí), o pasarnos al mundo NoSQL…

En esta última línea va la explicación de Tim Lossen, desarrollador de Wooga Software, aquí. Eso sí, en esa misma explicación, nos deja claro que:

  • La conversión a NoSQL no es un camino sencillo
  • Hay que pensar bien la estructura de los datos a almacenar
  • Hay que despedirse de ACID, y empezar a pensar en lo que pasará cuando se nos caiga el servidor…

 

En un principio, no tiene mala pinta… seguiremos probando Redis!

Un posible objetivo es utilizarlo de junto con node.js, y ver cómo funciona el rendimiento del conjunto… ya veremos…

Saludos!

Para comentar, pulsa aquí [+]

Para ir a entradas anteriores... [+]      

Leave a Comment


*