Si vivió a principios de los años 90 y 2000, lo más probable es que ya esté familiarizado con la pila de desarrollo web LAMP. Que, en pocas palabras, significaba Linux, Apache, MySQLy PHP/Python/Perl. La mayoría de los proyectos web se construían utilizando únicamente esta pila específica.
Era (y sigue siendo) accesible, relativamente fácil de mantener y tenía un coste de entrada casi nulo, ya que se podía gestionar un proyecto LAMP en una máquina muy modesta.
Pero los tiempos cambian, y todos hemos sido testigos de ello. PHP fue una vez el estándar de oro tanto en el desarrollo web como en el de software. Y en los últimos dos años, no sólo PHP ha perdido su encanto, sino que hemos visto un tremendo crecimiento en el uso de JavaScript en prácticamente todos los proyectos imaginables.
Este gráfico, extraído de la encuesta anual de desarrolladores de SO, muestra hasta qué punto PHP se ha quedado rezagado con respecto a lenguajes como Python, Java y, sobre todo, JavaScript.
Sin embargo, en este artículo no nos centraremos en los lenguajes de programación, sino en el estado de los sistemas de bases de datos modernos y sus diferencias. Como muestra el gráfico anterior, SQL sigue pisando fuerte, con más del 52% de los desarrolladores profesionales utilizándolo en su flujo de trabajo diario.
Pues bien, al igual que los lenguajes de programación cambian y evolucionan, también lo hacen los sistemas de bases de datos. Profundizando en la encuesta anteriormente mencionada, tenemos el siguiente gráfico que muestra el crecimiento de otros sistemas de bases de datos.
Los dos sistemas, en particular, que más nos interesan para este artículo son MongoDB y MariaDB. Ambos han mostrado un aumento constante de uso y popularidad, por lo que merece la pena analizar por qué está ocurriendo esto.
Además, sería pertinente averiguar si alguno de esos sistemas presenta ventajas significativas sobre el uso de SQL en su flujo de trabajo. Aunque se trata de una tecnología veterana y fiable (SQL), puede tener sus inconvenientes cuando se trata de proyectos a gran escala.
Echemos un vistazo más de cerca.
MySQL: Popular, de fácil acceso, fiable.
MySQL es el sistema de gestión de bases de datos más conocido del mundo. Su mantenimiento corre a cargo de Oracle(que adquirió el motor gradualmente), y la última versión oficial es la 8.0. MySQL está en desarrollo activo y sigue siendo un proyecto de código abierto.
A pesar del aumento de diferentes sistemas de bases de datos destinados a fines modernos, MySQL sigue siendo popular incluso entre las empresas tecnológicas más evolucionadas. Netflix, Twitter, Slack y otras grandes marcas son sólo algunas entre los millones de empresas que confían en MySQL de alguna forma o manera.
Incluso la plataforma de blogs más popular del planeta, WordPress, sigue utilizando religiosamente MySQL como su sistema de base de datos preferido. Aunque esto podría cambiar pronto, ya que Automattic tiene grandes planes para dar forma al futuro de WordPress a través de JavaScript y sus capacidades.
Entonces, ¿cuáles son las características destacadas de MySQL?
- Comunicación Cliente & Servidor. MySQL presenta un medio sin esfuerzo para la comunicación back-to-back entre el Cliente y el Servidor. Esto hace que sea fácil escalar aplicaciones MySQL a través de muchos servidores diferentes, redes o sistemas en la nube.
- Flexibilidad. MySQL brilla por su capacidad de permitir a los desarrolladores gestionar los datos de formas muy flexibles. Esto se consigue principalmente a través de su sintaxis SELECT, que proporciona un enorme potencial para gestionar incluso los mayores conjuntos de datos.
- Rendimiento. Aunque tradicionalmente las palabras «MySQL y rendimiento» no iban de la mano, las últimas versiones del sistema han demostrado ser extremadamente respetuosas con el rendimiento.
- Soporte. Dado que MySQL existe desde hace más tiempo que la mayoría de los otros sistemas de bases de datos, usted tiene acceso a un conjunto mucho mayor de necesidades de soporte. Esto incluye la propia documentación, sitios de preguntas y respuestas y, por supuesto, tutoriales en línea.
Todo esto hace de MySQL una opción sólida para casi cualquier tipo de proyecto. Pero, por supuesto, también hay algunos inconvenientes. Uno de ellos es que MySQL almacena los datos en tablas, filas y columnas. En otras palabras, a medida que su base de datos crece en tamaño, también lo hace la necesidad de recursos para acceder, analizar y utilizar esos datos.
Los desarrolladores más experimentados entienden esto muy bien; de ahí el aumento de desarrolladores y marcas que confían en sistemas de bases de datos más ágiles.
En definitiva, MySQL es un buen punto de partida para cualquier nuevo proyecto web o de software. Le ayuda a aprender el funcionamiento general de las bases de datos y dispone de amplios recursos con los que trabajar.
MariaDB: Con el rendimiento en mente.
MariaDB tiene una historia interesante detrás de su creación. En concreto, MariaDB es una bifurcación de MySQL y cuenta con el apoyo de algunos de los desarrolladores iniciales de MySQL. Existía la preocupación de que Oracle (la empresa) adquiriera MySQL, por lo que MariaDB nació en 2009. Desde entonces, el proyecto ha seguido evolucionando y creciendo, y como se muestra en el gráfico anterior, es utilizado por aproximadamente el 17% de los desarrolladores profesionales en la actualidad.
Una de las grandes ventajas de que MariaDB sea una bifurcación del MySQL original, es que se puede pasar fácilmente (¡y con seguridad!) de un sistema de base de datos al otro. La mayoría de las sintaxis de la línea de comandos siguen siendo prácticamente las mismas.
Entonces, se preguntará, ¿qué sentido tiene elegir MariaDB en lugar del sistema MySQL, más popular? Veamos algunos puntos centrales que muestran cómo MariaDB puede mejorar su experiencia en la gestión de datos cuando se trata de bases de datos.
- Motores de almacenamiento. MariaDB viene con una docena de motores de almacenamiento (Cassandra, TokuDB, etc.), que le permiten almacenar diferentes tipos de datos de forma más eficaz. Esto también significa que el acceso a dichos tipos de datos depende menos del rendimiento del servidor.
- Almacenamiento en caché/indización más rápidos. Un motor de almacenamiento único llamado «Memoria» es hasta un 25% más rápido para los comandos INSERT que el de MySQL. Esto adquiere mayor importancia a medida que aumenta la cantidad de información que almacena en su base de datos.
- Sistema de plugins. MariaDB admite el uso de plugins, componentes de software que pueden añadirse al núcleo del software sin tener que reconstruir el servidor MariaDB a partir del código fuente. Por lo tanto, los plugins pueden cargarse en el arranque, o cargarse y descargarse mientras el servidor está funcionando sin interrupción.
El motor central es compatible con los principales sistemas operativos, incluidos Windows, Linux e incluso OSX, si ése es el camino que va a tomar.
En los últimos dos años, empresas como Wikipedia, Google y numerosos bancos de categoría mundial han adoptado MariaDB como su principal elección de sistema de base de datos. Esto demuestra no sólo la solidez de MariaDB, sino también la confianza que las marcas a gran escala tienen en el proyecto.
Descubra cómo instalar MariaDB y configurarlo para producción.
MongoDB: Estructuración de datos de alta disponibilidad.
MongoDB sigue aumentando su popularidad gracias a su infame sistema de base de datos basado en documentos. En pocas palabras, MongoDB le permite insertar nuevos datos en su base de datos a un ritmo acelerado mediante la función insertMany(). Mientras que con MySQL, tendría que hacerlo de uno en uno. No hace falta un gráfico para entender la diferencia.
Pero, por si quiere uno, aquí tiene un gráfico que nos ha proporcionado Onyancha Brian Henry.
Lo que está viendo aquí es la cantidad de tiempo que tardan MySQL (rojo) y MongoDB (verde) en insertar datos dentro de la base de datos. Los datos que tenemos a mano se calcularon utilizando un punto de referencia de un millón de inserciones.
Lo más habitual es que los desarrolladores que ya saben que van a tratar con grandes cantidades de datos mezclados elijan MongoDB porque ofrece la mayor flexibilidad. Para gestionar dichos datos, claro. Sin estar ligado a un esquema, es posible guardar rápidamente los datos y sus tipos, ya sea para su uso inmediato o posterior.
- Escalabilidad. ¿Desea transferir sus datos a través de varios servidores? MongoDB fomenta este comportamiento ya que complementa un rendimiento aún más rápido. Además, todos los datos se guardan en formato JSON.
- Desarrollo móvil. Un nuevo tipo de pila tecnológica se llama MERN (MongoDB, Express, React y Node), que está pensada para el desarrollo de aplicaciones móviles de alto nivel. Dado que las aplicaciones móviles tienden a producir una enorme cantidad de datos a un ritmo muy rápido, sólo tiene sentido que MongoDB sea la elección por defecto para este propósito.
- Estructura dinámica. Pueden surgir problemas sin ninguna previsión. En el caso de MongoDB, obtendrá una flexibilidad extrema para mover o transferir dinámicamente su base de datos sin necesidad de abordar ningún problema relacionado con la estructura interna de los datos.
Hay una razón por la que más del 26% de los desarrolladores profesionales ya trabajan a diario con MongoDB. Es un potente sistema de base de datos basado en documentos pensado para aplicaciones y software modernos.
Conclusión
Encontrar el sistema de bases de datos adecuado para usted siempre va a ser un poco complicado. Puede pasarse una semana trabajando con un determinado sistema sólo para descubrir que no hace exactamente lo que usted quiere. Y muchas otras razones por las que un determinado sistema puede fallar a sus expectativas.
Dicho esto, MySQL es siempre una elección segura. Lo ha sido durante décadas. Pero, si tiene experiencia previa en desarrollo, y tiene planes más grandes para sus proyectos, los nuevos sistemas de bases de datos que están llegando al mercado ahora son definitivamente dignos de mirar.
Háganos saber en los comentarios si usted mismo ha realizado alguna transición de base de datos recientemente. Siempre es bueno escuchar otra versión de la historia. Por último, esperamos que este artículo cubra suficiente terreno para que estudie cada sistema más de cerca.