A pesar de tener una estructura similar, ambos sistemas de gestión de bases de datos relacionales tienen características y elementos diferentes. Saber cuál se adapta mejor a tus necesidades optimizará el rendimiento de tu aplicación web.

Un sistema de gestión de base de datos relacional (RDBMS) es la versión mejorada de un sistema de gestión de bases de datos (SGBD) o database management system (DBMS). Utiliza un módulo de software conocido como motor de almacenamiento para almacenar, gestionar y modificar los datos. A diferencia de un SGBD que almacena los datos en forma de archivo, un RDBMS gestiona los datos en formato tabular. El uso de tablas de base de datos elimina la redundancia de datos que experimenta el SGBD debido a su uso de claves e índices. MySQL y MariaDB pertenecen a la categoría RDBMS. Las siguientes secciones explorarán más a fondo ambos sistemas de gestión de bases de datos relacionales populares y cómo se diferencian entre sí.

Tanto MySQL como MariaDB son tecnologías de bases de datos de código abierto. Puede utilizarlos para almacenar datos en formato tabular con filas y columnas. MySQL es la base de datos de código abierto más utilizada. Además, es la base de datos relacional principal para muchos sitios web, aplicaciones y productos comerciales populares. MariaDB es una versión modificada de MySQL. MariaDB fue creada por el equipo de desarrollo original de MySQL debido a problemas de licencia y distribución después de que Oracle Corporation adquiriera MySQL. Desde la adquisición, MySQL y MariaDB han evolucionado de manera diferente. Sin embargo, MariaDB adopta los archivos de definición de tablas y datos de MySQL y también usa protocolos de cliente, API de cliente, puertos y sockets idénticos. Con ello se pretende que los usuarios de MySQL puedan cambiar a MariaDB sin problemas.

¿Cuáles son las similitudes entre MariaDB y MySQL?

MySQL es un sistema de administración de bases de datos relacionales que se lanzó en 1995. En 2009, los desarrolladores publicaron MariaDB como una bifurcación de código de MySQL 5.1.38.

Como MariaDB se derivó de MySQL, existen muchas similitudes entre los dos sistemas de administración de bases de datos relacionales. Por ejemplo, MariaDB ha mantenido la estructura, las convenciones de nomenclatura y los archivos de definición de datos de MySQL. Además, es compatible con todos los conectores, conexiones y puertos de MySQL. Su paquete de cliente de MySQL funciona con MariaDB, sin ninguna modificación.

A continuación indicamos algunas similitudes más.

Cumplimiento con ACID

La atomicidad, la consistencia, el aislamiento y la durabilidad (ACID) son los cuatro principios básicos que garantizan la fiabilidad de las transacciones de bases de datos. Tanto MySQL como MariaDB mantienen estos principios. Al cumplir con el modelo ACID, ambas bases de datos mantienen la precisión e integridad de los datos.

Compatibilidad con SQL

MySQL y MariaDB son bases de datos relacionales que organizan los datos en tablas. Tanto MariaDB como MySQL utilizan SQL para administrar y consultar datos. Puede utilizar muchos de los mismos comandos en estos sistemas.

Software de código abierto

Como sistemas de administración de bases de datos relacionales de código abierto, MySQL y MariaDB son trabajos colaborativos que han surgido de una comunidad de desarrolladores. Su código fuente está disponible para el público.

La base de datos de MySQL tiene una versión que es completamente de código abierto publicada bajo la licencia pública general (GPL). También tiene una versión empresarial de pago que incluye características y soporte adicionales. MariaDB es completamente de código abierto y se puede encontrar en GitHub.

Seguridad

MySQL y MariaDB ofrecen características de seguridad básicas similares. Ofrecen cifrado, mecanismos de control de acceso, autenticación y autorización de usuarios y compatibilidad con SSL/TLS. También permiten un control de acceso detallado para que pueda conceder diferentes niveles de permiso a diferentes usuarios.

Diferencias clave: MariaDB en comparación con MySQL

Desde que se bifurcó de MySQL, MariaDB ha seguido ampliando sus capacidades. Algunos de estos cambios han dado lugar a diferencias fundamentales en cuanto a funcionalidad, capacidad y rendimiento.

Estas son las diferencias significativas entre MySQL y MariaDB.

Gestión de datos JSON

MariaDB y MySQL admiten la recuperación y el almacenamiento de datos JSON. Sin embargo, almacenan los informes JSON de manera diferente. MariaDB almacena los informes JSON en cadenas, mientras que MySQL los almacena como objetos binarios.

MySQL y MariaDB tampoco admiten todas las funciones JSON. MariaDB admite JSON_QUERY y JSON_EXISTS, mientras que MySQL no. Del mismo modo, MySQL admite el tipo de datos JSON nativo JSON_TABLE que MariaDB no admite.

Sin embargo, MariaDB solo admite tipos de datos JSON desde la versión 10.2. El tipo de datos JSON que usa MariaDB es un alias de LONGTEXT.

Funcionalidad

Dado que su desarrollo ha sido diferente, MariaDB y MySQL ahora ofrecen una funcionalidad ligeramente distinta.

Por ejemplo, MySQL proporciona columnas dinámicas que permiten definir varios valores de datos en una sola columna y modificarla con funciones. Las columnas dinámicas permiten enmascarar los datos para proteger la información confidencial.

Por el contrario, MariaDB admite columnas invisibles en las vistas de bases de datos. Las columnas invisibles no aparecen en la lista cuando un usuario ejecuta una declaración SELECT o solicita un valor en una declaración INSERT.

Autenticación de usuarios

MySQL tiene el componente validate_password, que puede utilizar para aumentar la seguridad de las contraseñas.

MariaDB no lo tiene de forma predeterminada, pero ofrece tres complementos de validación. Puedes usar estos complementos de validación de contraseñas para agregar más protección a las contraseñas. En la versión 10.4, MariaDB introdujo el complemento de autenticación ed25519 para reemplazar la autenticación SHA-1 utilizada anteriormente. Esto ayuda a autenticar a los usuarios y almacenar las contraseñas de forma segura.

Cifrado

Tanto MySQL como MariaDB cifran los datos en reposo y en tránsito.

MySQL permite a los usuarios administradores configurar y cifrar registros de rehacer y deshacer, mientras que no cifra el espacio de tablas temporal ni los registros binarios.

Por otro lado, MariaDB admite el cifrado de registros binarios y el cifrado de tablas temporales.

Agrupación de subprocesos

La agrupación de subprocesos permite que una base de datos optimice sus recursos al vincular nuevas conexiones con subprocesos preexistentes. Una gran capacidad de agrupamiento de subprocesos es vital para las aplicaciones que desean escalar y atender a miles de usuarios en paralelo.

MariaDB incluye la agrupación de subprocesos en su complemento de grupo de subprocesos, que forma parte de la edición de la comunidad. MariaDB ofrece la posibilidad de administrar más de 200 000 conexiones a la vez.

MySQL tiene un complemento de agrupamiento de subprocesos en su versión empresarial. Sin embargo, no puede gestionar tantas conexiones a la vez como MariaDB.

¿Puede cambiar de MySQL a MariaDB?

Sí, puede pasar de MySQL a MariaDB con facilidad. MariaDB está diseñado para ser compatible con versiones anteriores de MySQL. Esto significa que las aplicaciones y los scripts escritos para MySQL deberían funcionar con MariaDB sin cambios significativos.

Hasta MariaDB 5.5, MariaDB Server seguía el esquema de numeración de versiones de MySQL, con el objetivo de lograr la compatibilidad inmediata con la misma versión principal de MySQL. En 2012, para reflejar el creciente número de características que no estaban disponibles en MySQL, la numeración de las versiones de MariaDB Server se bifurcó. MariaDB publicó la versión 10.0, mientras que MySQL publicó la 5.6.

MariaDB Server aún conserva altos niveles de compatibilidad con MySQL. Las actualizaciones de versiones antiguas de MySQL a incluso las versiones más recientes de MariaDB se admiten con una actualización local.

El cambio de MySQL a MariaDB sigue un procedimiento de instalación estándar. Ejecute la herramienta mysql_upgrade para actualizar los privilegios y las tablas de eventos de las bases de datos de MySQL con los equivalentes de MariaDB.

Resumen de las diferencias: MySQL en comparación con MariaDB

MySQLMariaDB
JSONMySQL almacena los informes JSON como objetos binarios.MariaDB almacena los informes JSON en cadenas. El tipo de datos JSON de MariaDB es un alias de LONGTEXT.
Compatibilidad con bases de datos de OracleMySQL tiene un alto nivel de compatibilidad, pero no es compatible con PL/SQL.MariaDB tiene un alto nivel de compatibilidad y es compatible con PL/SQL desde la versión 10.3.
Velocidad y rendimientoMySQL es un poco más lento que MariaDB en cuanto a replicación y consulta.MariaDB es un poco más rápido que MySQL en cuanto a replicación y consulta.
FuncionalidadMySQL admite la función de solo superlectura, columnas dinámicas y enmascaramiento de datos.MariaDB admite columnas invisibles y espacios de tabla temporales.
AutenticaciónMySQL tiene el componente validate_password.MariaDB tiene tres complementos de validación de contraseñas.
CifradoLas bases de datos de MySQL utilizan InnoDB y AES para cifrar los datos en reposo.MariaDB admite el cifrado de registro temporal y el cifrado de registro binario.
Motores de almacenamientoMySQL tiene menos motores de almacenamiento que MariaDB.MariaDB tiene más motores de almacenamiento que MySQL y puede usar varios motores en una tabla.
LicenciaMySQL tiene dos versiones: MySQL Enterprise Edition y una versión de GPL.MariaDB está completamente bajo la licencia de GPL.
Agrupación de subprocesosMySQL incluye la agrupación de subprocesos en su edición empresarial.MariaDB puede administrar más de 200 000 conexiones a la vez, más que MySQL.

Fuente:  https://aws.amazon.com/es/compare/the-difference-between-mariadb-vs-mysql/