Podcast: Reproducir en una nueva ventana | Descargar
En el podcast de hoy hablaremos sobre un tema que me apasiona ¡Sobre las bases de datos en RAM!
Pero antes de comenzar a explicar los beneficios que tienen las bases de datos en RAM, vamos a ver qué es una base de datos y como funciona.
¿Cómo funciona una base de datos?
Puesto que a finalidad del artículo no es explicar como funcionan las bases de datos, simplemente vamos hacer un pequeño resumen para todos los lectores que están aprendiendo poco a poco informática y quieren saber la ventajas de las bases de datos en RAM frente a las convencionales.
Pues bien, una base de datos, en resumen, es una forma ordenada de clasificar la información para luego poder acceder, modificarla, crearla y eliminarla mediante unas «consultas».
De hecho, existen muchos programas para crear bases de datos y aunque la mayoría se utilizan con el mismo lenguaje (SQL), no es algo obligatorio. Por ejemplo, uno de los programas más usados a la hora de crear bases de datos es MySQL, pero existen muchos otros, como podría ser Oracle, postgresSQL, SQLite, etc.
Pero bueno, en resumen ¿Cómo funciona una base de datos?
Pues como hemos dicho, es una forma ordenada de clasificar información. Información a la que luego podremos acceder desde nuestros lenguaje de programación preferida, como podría ser PHP, Java, C, etc. mediante unas peticiones que se llaman consultas.
Por ejemplo, cuando un programa dice «base de datos, dame toda la información del cliente Luis Peris», la base de datos, va al fichero de la base de datos en el disco duro, recupera la información y se lo manda al programa que estamos desarrollando.
Lo importante aquí, es entender que la mayoría de la información de las bases de datos como MySQL se guardan casi el 100% de las veces en el disco duro.
Bases de datos en RAM
Y aquí es donde aparecen los problemas y es que el disco duro es mucho más lento de lo que podemos creer, por lo que la velocidad de lectura muchas veces no es suficiente.
Para entendernos mejor, un disco duro rígido (el clásico de toda la vida) tiene una velocidad entre 100 y 200 MBps. Puede parecer mucho, pero ahora fijémonos en la velocidad de los nuevos discos duros de estados solido que van entre 200 y 500 MBps.
Esto nos puede parecer mucho, de hecho, mucha gente ha dicho ¡Pues nos pasamos a los discos duros de estado sólido! Y esa es la razón por la cual en muchos hostings ahora empiezan a ofrecer unicamente estos discos duros.
Pero para muchos, esta velocidad no es suficiente para algunas tareas, así que se pensó en crear bases de datos que funcionaran en RAM ¿Y sabéis que velocidad tiene la RAM? Pues por ejemplo, la DDR3 puede llegar hasta los 18.000 MBps, es decir ¡18 GB por segundo!
Si lo comparamos con el disco duro normal de 100MB, tendríamos que juntar la velocidad de 180 discos duros para igualar a la RAM.
Y si alguien se pone a pensar ¿Por qué no se usa más este tipo de bases de datos? Pues bueno, además de que están pensadas para tareas muy específicas, hay que tener en cuenta algo ¡La RAM es carísima! Pensemos, que cuando te compras un ordenador, puede que tenga 1 Terabyte de disco duro, pero solamente tendrá 8 Gigabites. Es decir, la proporción será del 0’8% comparando disco duro contra RAM. Si la RAM fuera más barata ¿No creeis que tendriamos más?
¿Para qué usar las bases de datos en RAM?
Principalmente yo veo tres motivos para usar las bases de datos en RAM:
Consultas ultra-rápidas
El primer motivo sería para cuando necesitamos unas velocidades muy grandes. Un ejemplo sencillo, seria pensar en cuando estamos buscando algo en Google, cada vez que presionamos una tecla nos aparecerá unas sugerencias. Para que suceda, tienes que haber una base de datos ultra rápida detrás, por lo que usar Redis por ejemplo para tener la base de datos en la RAM, seria una opción muy inteligente.
Bases de datos en RAM para el caché
Sin duda, el caché es uno de los principales motivos por el cual debemos de usar este tipo de bases de datos junto a las que ya usemos.
Pongamos un ejemplo, imaginad que tenéis una red social con 10 millones de usuarios activos y de media todos acceden 10 veces al día a ver las novedades. Pues como mínimo, tendríamos 100 millones de peticiones.
Recordemos que en este caso, cada petición irá acompañada de una cookie, esa cookie la tendremos que usar para preguntar a nuestra base de datos (MySQL por ejemplo) si es de algún usuario y si es de algún usuario, que nos devuelva la información. Esa operación la tendremos que hacer 100 millones de veces al día.
Pues bueno, con este tipo de bases de datos (Redis, memcached, etc.) nos permitirá ahorrarnos miles de millones de consultas a la base de datos al cabo del mes. Simplemente tendremos que copiar las cookies y la información básica del usuario en la RAM, así cuando recibamos una petición, consultaremos a la RAM y no al disco duro.
Como es lógico, esto repercutirá en que nos ahorraremos miles de dólares al cabo del año.
Investigación
Las investigaciones de nuevos fármacos necesitan ultra ordenadores para procesar mucha información, en poco tiempo.
Gracias a las bases de datos en RAM, pueden optimizar todavía más sus algoritmos para guardar toda la información posible en la memoria RAM.
Esto permitiría eliminar el cuello de botella que se crea cuando el disco duro no puede leer tanta información como el procesador puede procesar, además también permitiría ahorrar miles de dólares al cabo del año.
Resumen y conclusión
Lo importante es entender que no hay bases de datos mejores o peores, lo ideal es juntar las que necesitamos para así optiminar el tiempo de carga de nuestra página web.
Por último recordad que hicimos un artículo sobre Redis (un tipo de bases de datos en RAM), lo podéis leer desde aquí: Redis, base de datos en RAM.
Todos los Lunes, Miércoles y Viernes, podéis escucharnos en nuestra web desde este apartado, desde ivoox y o desde iTunes.