¿Cuál es la diferencia entre MariaDB y MySQL?

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.

Lea sobre MySQL »

¿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.

Más información sobre los SQL »

Tanto MySQL como MariaDB almacenan datos como tablas relacionales con la interfaz de SQL.

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.

Cuándo usar MariaDB en comparación con MySQL

MariaDB es más escalable y ofrece una mayor velocidad de consulta en comparación con MySQL. Esto hace que sea ideal para administrar datos de gran tamaño. En MariaDB, también encontrará más características que MySQL no tiene, como motores de almacenamiento de secuencias y columnas virtuales. También puede utilizar varios motores en una tabla.

Sin embargo, MySQL existe desde hace mucho más tiempo que MariaDB. Algunas organizaciones prefieren el soporte empresarial que ofrece MySQL.

A continuación, señalamos algunas consideraciones que se deben tener en cuenta a la hora de elegir entre ambas bases de datos.

Motores de almacenamiento

En los sistemas de administración de bases de datos, los motores de almacenamiento son un componente que ayuda a recuperar, actualizar y almacenar datos dentro de la base de datos. El motor de almacenamiento con el que desea trabajar puede influir en su decisión.

Puede utilizar varios motores de almacenamiento tanto en MySQL como en MariaDB, pero MySQL ofrece menos opciones. Algunos motores de almacenamiento en MySQL incluyen InnoDB, CSV, Federated, MyISAM, Merge y Federated.

MariaDB admite algunos motores de almacenamiento que MySQL no admite, como XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra y Connect.

Licencia

Tanto MariaDB como MySQL tienen versiones de licencia pública general (GPL). MariaDB está completamente autorizada por la GPL, mientras que MySQL tiene dos licencias disponibles: pública y privada.

La licencia privada de MySQL Enterprise Edition ofrece capacidades adicionales, como la agrupación de subprocesos, que aceleran la velocidad de las consultas. Las empresas que deseen distribuir su software de MySQL sin distribuir el código fuente bajo la GPL pueden preferir MySQL Enterprise Edition.

Compatibilidad con bases de datos de Oracle

La compatibilidad con bases de datos de Oracle es la capacidad de la base de datos de Oracle para funcionar con una aplicación creada con bases de datos de MariaDB o MySQL.

Si su organización ya utiliza productos de bases de datos de Oracle, puede que prefiera MySQL. La base de datos de Oracle ofrece un modo de compatibilidad específico para la sintaxis de SQL específica de MySQL. Sin embargo, MySQL no admite PL/SQL, el lenguaje orientado a aplicaciones que desarrolló Oracle.

Desde la versión 10.3, MariaDB es compatible con PL/SQL. MariaDB también proporciona un modo de compatibilidad de sintaxis de Oracle para ejecutar aplicaciones de bases de datos de Oracle sin cambios.

Velocidad y rendimiento

Durante muchos años, MySQL superó a MariaDB en varios casos de uso. Por ejemplo, MySQL 8.0 podía gestionar más consultas por segundo que la versión 10.3 de MariaDB. Sin embargo, MariaDB ha mejorado mucho en los últimos años.

En la actualidad, MariaDB es más rápido en términos de realizar consultas y tareas de replicación. Es posible que prefiera MariaDB para cargas de trabajo críticas para el rendimiento.

¿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

 

MySQL

MariaDB

JSON

MySQL 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 Oracle

MySQL 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 rendimiento

MySQL 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.

Funcionalidad

MySQL admite la función de solo superlectura, columnas dinámicas y enmascaramiento de datos.

MariaDB admite columnas invisibles y espacios de tabla temporales.

Autenticación

MySQL tiene el componente validate_password.

MariaDB tiene tres complementos de validación de contraseñas.

Cifrado

Las 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 almacenamiento

MySQL tiene menos motores de almacenamiento que MariaDB.

MariaDB tiene más motores de almacenamiento que MySQL y puede usar varios motores en una tabla.

Licencia

MySQL tiene dos versiones: MySQL Enterprise Edition y una versión de GPL.

MariaDB está completamente bajo la licencia de GPL.

Agrupación de subprocesos

MySQL 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.

¿Cómo puede AWS cumplir con sus requisitos de MySQL y MariaDB?

Amazon Relational Database Service (Amazon RDS) es un conjunto de servicios completamente administrados que facilita las tareas de configuración, funcionamiento y escalado de las bases de datos en la nube.

Elija entre siete motores populares, dos de los cuales están dedicados a MySQL y MariaDB. Amazon RDS para MariaDB es compatible con las versiones 10.3, 10.4, 10.5 y 10.6 de MariaDB Server. Amazon RDS para MySQL es compatible con las versiones 5.7 y 8.0 de MySQL Community Edition. 

Registros de CloudWatch

Estas son las formas en las que puede beneficiarse del uso de Amazon RDS:

  • Implemente bases de datos escalables de MariaDB y MySQL en la nube en cuestión de minutos con una capacidad de hardware rentable y redimensionable.
  • Utilice el código, las aplicaciones y las herramientas existentes sin ningún cambio.
  • Acceda a más de 50 métricas de E/S de CPU, memoria, sistema de archivos y disco para llevar a cabo una supervisión avanzada de bases de datos.
  • Disfrute de una disponibilidad y durabilidad mejoradas para escalar horizontalmente de forma elástica más allá de las restricciones de capacidad de una única instancia de base de datos.

Para comenzar a utilizar MySQL y MariaDB en AWS, cree una cuenta hoy mismo.

Siguientes pasos con AWS