MariaDB vs MySQL Cuál elegir

MariaDB vs MySQL Cuál elegir

Es probable que hayas escuchado hablar del tipo de bases de datos MariaDB y que es cada vez más utilizado por desarrolladores y webmasters para gestionar la información de sus aplicaciones o websites, y pese a que parece todo un mundo nuevo, son muchas las similitudes que tiene con el clásico MySQL. Es por eso que preparamos esta nota con el objetivo de revisar y resaltar las principales similitudes y diferencias entre bases de datos MySQL, y bases de datos MariaDB. Entre los ítems que analizaremos, revisaremos los aspectos de rendimiento, seguridad y características principales más relevantes para entender un poco de qué se trata.

 

 

MySQL y el origen MariaDB

MySQL es una de las bases de datos más utilizadas en todo el mundo. Es gratis y también de código abierto. Desarrollado en C o C++, MySQL es una de las opciones de base de datos más populares. Incluso las compañías y las apps más grandes del mundo usan este motor de bases de datos como Facebook, Youtube, Airbnb o millones de sitios web desarrollados sobre el famoso CMS WordPress.
La base de datos fue lanzada por una empresa sueca llamada MySQL AB en 1995 con licencia libre, desarrollo que fue adquirido por Sun Microsystems en 2008, quien dos años más tarde fue adquirida a la vez por Oracle. Desde entonces, el desarrollo de MySQL es mantenido y administrado por Oracle, y no ha cambiado nuevamente de manos.

Durante la adquisición de Sun Microsystems por Oracle, algunos de los ingenieros superiores que estaban trabajando en el desarrollo de MySQL sintieron que existe un conflicto de intereses entre MySQL y la base de datos comercial de Oracle: Oracle Database Server. Como resultado, estos ingenieros crearon una bifurcación de la base de código de MySQL y comenzaron su propia organización. Así es como nació MariaDB.

A partir de hoy, ambas bases de datos son muy populares y son ampliamente utilizadas por la comunidad de desarrolladores. Tal es así que MySQL ocupa el puesto número uno entre las bases de datos relacionales de uso libre y gratuito. Por el contrario, MariaDB está ligeramente por detrás pero también es utilizada por un gran porcentaje de quienes desarrollan aplicaciones de cualquier tipo, y estos la eligen cuando se trata de apps de grandes volúmenes de datos, o con visitas muy masivas.

 

bases de datos mysql o mariadb

 

 

Algunos diferenciadores técnicos entre MySQL y MariaDB

Veamos en este párrafo las diferencias técnicas más notorias entre MySQL y MariaDB de manera que puedas decidir con cuál de ellos quedarte.

 

Trabajo con JSON

A partir de la versión 5.7 de MySQL se admite un tipo de JSON definido por RFC 7159 que permite un acceso eficiente a objetos de JavaScript, mientras que MariaDB decidió no implementar esta mejora, ya que afirman que no es parte de los principios de SQL. En cambio, para admitir la replicación desde MySQL, solo definieron un alias para JSON, que en realidad es una columna LONGTEXT. Vale la pena mencionar que tanto MySQL como MariaDB ofrecen diferentes funciones relacionadas con JSON que permiten un acceso, análisis y recuperación de datos.

 

Autenticación

En MySQL, caching_sha2_password es el complemento de autenticación predeterminado en lugar de mysql_native_password. Este cambio debería mejorar la seguridad mediante el uso del algoritmo SHA-256.

 

Consola de MySQL

MySQL Shell es un cliente avanzado de línea de comandos y editor de código para MySQL. Además ofrece capacidades de secuencias de comandos para JavaScript y Python. Usando esta herramienta no es posible acceder a servidores MariaDB para manejar las bases de datos desde command line, ya que MariaDB no es compatible con el protocolo MySQL X.

 

Cifrado

MySQL cifra registros cuando está configurado para hacerlo, mientras que no cifra el espacio de tabla temporal o los registros binarios. MariaDB sí admite el cifrado de registros binarios y el cifrado de tablas temporales.

 

Sys Schema

MySQL incluye el Sys Schema, que es un conjunto de objetos que ayuda a los administradores de bases de datos y a desarrolladores a interpretar los datos recopilados por el esquema de rendimientos. Los objetos de Sys Schema se pueden usar para la optimización y el diagnóstico al encontrar un problema. MariaDB no tiene esta spec aún.

 

Validate_password

El objetivo del complemento validate_password es probar las contraseñas y mejorar la seguridad. MySQL tiene este complemento habilitado de forma predeterminada, mientras que MariaDB no.

 

Columnas invisibles

Esta función, que está disponible en MariaDB, aunque no en MySQL, y permite crear columnas que no figuran en los resultados de una instrucción de tipo select, ni es necesario asignarles un valor en una instrucción de tipo insert cuando su nombre no es declarado.

 

Threadpool

MariaDB admite grupos de hilos de conexión, que son más efectivos en situaciones en las que las consultas son relativamente cortas y la carga está vinculada directamente con la CPU del server. En la edición que todos conocemos de MySQL, el número de subprocesos es estático, lo que limita la flexibilidad en estas situaciones, y no permite la agrupación de hilos.

 

bases de datos mysql o mariadb logo de db

 

 

Replicación y compatibilidad

Ambos motores de bases de datos ofrecen la capacidad de replicar datos de un server a otro. La principal diferencia que vimos es que la mayoría de las versiones de MariaDB te permitirán replicarlas desde bases de datos MySQL, lo que significa que podrías migrar fácilmente las bases de datos desde MySQL a MariaDB.

Si por el contrario estás planeando al revés, pues todo apunta a que no es tan fácil, ya que la mayoría de las versiones de MySQL no permitirán la replicación desde servidores corriendo MariaDB. La mayoría de los DBA esperaban que MariaDB se mantuviera como una rama de MySQL, pero desde hace tiempo es en realidad una bifurcación de ella, lo que significa que si se está buscando mudar de uno a otro serán necesarios algunos esfuerzos extra.

 

 

Motores compatibles con MySQL y MariaDB

MariaDB admite más motores de almacenamiento que MySQL, pero esto no lo hace mejor ni peor. Los motores de almacenamiento de bases de datos MariaDB son XtraDB, InnoDB, MariaDB ColumnStore, Aria, Archive, Blackhole, Cassandra Storage Engine, Connect, CSV, FederatedX, Memory storage engine, Merge, Mroonga, MyISAM, MyRocks, QQGraph, Sequence Storage Engine, SphinxSE, Spider, y TokuDB; mientras que los de MySQL son InnoDB, MyISAM, Memory, CSV, Archive, Merge, y Federated.

 

 

Updates del desarrollador

MariaDB es frecuente que tenga más lanzamientos de updates o actualizaciones que MySQL. Esto tampoco es bueno ni malo. Por el lado positivo, las correcciones de errores y nuevas funcionalidades se lanzan con mayor frecuencia en MariaDB, pero por el otro, administrar un server con este tipo de DB requiere de más atención de parte del sysadmin para mantenerlo al día.

 

 

Disponibilidad en proveedores de infraestructuras en la nube

MariaDB está disponible como un servicio administrado en no todas las plataformas de alojamiento de aplicaciones en la nube, pero sí lo encontrarás en la nube de WNPower corriendo de forma nativa junto con MySQL, y sin pagar costos adicionales.
MySQL en cambio, es mucho más popular y sí podrás encontrarlo como base de datos administrada en casi todos los proveedores de infraestructura en la nube.
Por lo tanto, si estás usando una plataforma que no soporte MariaDB y deseas que tu proveedor de nube administre el servicio por ti, es posible que debas considerar usar MySQL, a menos que desees instalar y administrar instancias de MariaDB por tu cuenta, o bien mudar a un proveedor cloud como WNPower con gestión de tus bases de datos incluida.

Revisa Cloud VPS de WNPower y deslígate de gestionar servidores

 

 

performance entre mysql y mariadb

Prueba de rendimiento de solo lectura realizada por el desarrollador de MariaDB para comparar la performance entre MySQL y MariaDB. Ver en detalle.

 

 

Conclusión

En todo este tiempo se han ejecutado muchísimas pruebas de rendimiento tanto públicamente, como de forma privada por expertos en motores MySQL y MariaDB, y es posible que no haya una definición unánime de cuál de los dos motores de base de datos es mejor. Si MySQL, o MariaDB. Parece entonces que mucho depende del caso de uso, las consultas, el número de usuarios y conexiones concurrentes, y muchos otros factores que deben considerarse; y que son propios de cada app, como siempre al criterio de los gurúes programadores.

Esta nota fue escrita con cariño para ti y esperamos que haya podido ayudarte 😉