En este artículo hacemos un análisis detallado sobre los sistemas gestores de bases de datos MySQL y MariaDB, sobre sus diferencias y similitudes, así como recomendaciones sobre usar uno u otro.
MySQL es una compañía casi inseparable de PHP, así como de muchos otros lenguajes de programación y aplicaciones. Sin embargo, actualmente existe MariaDB, que puede sustituir perfectamente a MySQL si prefieres el software libre y transparente.
Elegir entre uno y otro de estos sistemas gestores de bases de datos tiene algunas ventajas, inconvenientes y diferencias que vamos a destacar en este artículo.
Qué es MySQL
Se trata de un sistema gestor de bases de datos propiedad de Oracle. Esta compañía adquirió MySQL como parte de los bienes de otra empresa que absorbió, llamada Sun Microsystems. Desde que MySQL pertenece a Oracle, algunos cambios estratégicos surgieron en este motor de bases de datos:
- Seguramente muchos conocerán la antigua Sun, una compañía mucho más centrada en el software libre, mientras que Oracle ha sido tradicionalmente una empresa mucho más centrada en el software vendido bajo licencia.
- Paralelamente Oracle es la dueña del motor de bases de datos con el mismo nombre, uno de los más potentes a nivel empresarial del mundo, por lo que MySQL no es realmente una base de datos prioritaria para ellos.
Licencias MySQL
Debido a estas situaciones MySQL tiene una doble licencia, tanto comercial como empresarial, una gratuita y otra de pago.
- Licencia Enterprise: esta es la licencia comercial, pensada para empresas que usan MySQL y prefieren tener soporte de la propia Oracle. Tanto el propio motor de base de datos como todas sus herramientas adicionales en el ecosistema, se ofrecen con licencia enterprise, de pago.
- Licencia Community: esta es la licencia gratuita, para la comunidad que desea usar MySQL tal como siempre se ha usado, como software libre. En este caso, las versiones de MySQL y las herramientas de su ecosistema se tienen que descargar de manera independiente.
Cuando queremos descargar MySQL desde la página de Oracle tenemos que buscar el enlace de la versión Community que lo tienen en la parte de abajo, menos visible.
Qué es MariaDB
Ante la situación de MySQL y el enfoque comercial de Oracle los desarrolladores que venían trabajando con el motor de base de datos decidieron continuar el proyecto de manera independiente, pero compatible con el motor de base de datos tradicional. Sin embargo, como MySQL es una marca comercial, no le pueden llamar de esa manera y lo bautizaron como MariaDB.
MariaDB es un sistema gestor de bases de datos totalmente de código abierto, desarrollado a partir de un fork de MySQL, por tanto se trata del mismo software, o mejor dicho, dos softwares con una misma raíz, porque lo cierto es que hoy los dos motores de bases de datos han distanciado un tanto sus líneas de desarrollo.
MariaDB es totalmente libre. Dispone de una única licencia, por lo que no aquellas personas que apoyan el software libre se suelen sentir más inclinados a usar este motor de bases de datos.
Similitudes de MySQL y MariaDB
Lo cierto es que ambos motores de bases de datos son muy similares, hasta el punto que la mayoría de las ocasiones podríamos usar uno u otro sin darnos cuenta de cuál de ellos está por debajo.
Obviamente, la instalación de MySQL y MariaDB difiere, pues somos nosotros los que debemos decidir cuál se instala, pero, una vez instalado, la manera de funcionar es idéntica.
- Ambos se ejecutan bajo el mismo puerto predeterminado
- Para conectarnos usamos el mismo cliente, que se llama igual "mysql" y las opciones para invocarlo desde el terminal son también exactamente iguales.
- Los nombres de los archivos para ejecutar MySQL y las rutas donde se instalan son los mismos. Incluso el programa para asegurar una instalación de MySQL y MariaDB (mysql_secure_installation) es el mismo.
- El lenguaje para la creación de consultas, SQL, así como la mayoría de las funciones (al menos toda la base de común uso) son idénticas, manteniendo sintaxis, etc.
- Los drivers de los lenguajes de programación son el mismo, por lo que el soporte de cualquier lenguaje a MySQL es extensible a MariaDB de la misma manera. Es decir, para usar MariaDB desde lenguajes como PHP, Node, Python, utilizamos el mismo juego de funciones, mismo driver, etc.
Por lo tanto las similitudes de estos motores de bases de datos son muy amplias. Donde funciona una funciona la otra y además lo hace del mismo modo. La elección entre MySQL y MariaDB es prácticamente cuestión de gustos, al menos en la mayoría de los casos.
Diferencias entre MySQL 8.0 y MariaDB 10.5
Aunque encontramos muchas más similitudes que diferencias entre MySQL y MariaDB lo cierto es que también existe cierta distancia. El motivo es que los equipos de desarrollo de uno y otro software son diferentes, por lo tanto no todas las decisiones y todas las novedades implementadas en un motor de base de datos se encuentran disponibles en el otro.
Motores de almacenamiento
Una de las diferencias más importantes que podemos encontrar entre MySQL y MariaDB son los motores de almacenamiento de las bases de datos. En los últimos años MariaDB ha ido incorporando cantidad de motores interesantes, con diversas ventajas, además de los que ya eran tradicionales en MySQL. MariaDB incluye alternativas adicionales como XtraDB, Aria, Cassandra Storage Engine, Spider, SQUENCE, FederatedX, y muchos otros.
Otros detalles sobre las cosas que encontramos en uno y otro sistema los podemos ver en la página de las releases de MariaDB.
De todos modos, Como MariaDB y la versión Community de MySQL son de código abierto, aunque sus equipo de desarrollo sean distintos, unos y otros se retroalimentan para incorporar novedades entre ambas bases de datos. MySQL puede beneficiarse también de los avances realizados en MariaDB y viceversa, si los consideran interesantes y suficientemente estables. Por lo tanto, es de suponer que las diferencias más destacables entre los sistemas se vayan acercando pasado un plazo de tiempo.
Conclusión ¿Qué SGBD usar entonces?
Bueno, la verdad es que la decisión no es tan compleja. Ambos sistemas gestores de base de datos (SGBD) son compatibles en la mayoría de los casos y los podemos intercambiar de manera transparente en casi todos los proyectos. Por tanto, podemos tener bastante tranquilidad, en el sentido de que no nos vamos a equivocar con una u otra decisión tomada.
Muchas veces se usa MySQL por que es lo conocido, pero lo cierto es que MariaDB es una sistema un poco más avanzado y con actualizaciones más frecuentes. Toda la confusión derivada de la licencia dual de MySQL ha provocado que muchos de las empresas más importantes que venían usando MySQL se hayan ido pasando a MariaDB en los últimos años.
Personalmente creo que es un buen momento para que los desarrolladores que todavía no se han animado a instalar MariaDB lo prueben para sus proyectos personales o los de sus clientes.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...