MariaDB vs. MySQL

¿MariaDB o MySQL? ¿Qué sistema de gestión de bases de datos va en cabeza? El proyecto de código abierto MySQL tiene más de 20 años de historia. MariaDB, una bifurcación del modelo clásico de base de datos relacionales, apareció por primera vez en 2009. Aunque en los inicios de MariaDB el objetivo principal era desarrollar un sustituto inmediato con una comunidad de código abierto de alto nivel, los objetivos de desarrollo actuales de los dos proyectos son muy diferentes. Te explicamos cuáles son.

El desarrollo de MySQL y MariaDB

La figura clave detrás de MySQL y MariaDB es el desarrollador de software finlandés Michael “Monty” Widenius. Junto con los suecos David Axmark y Alan Larsson, Widenius fundó la sociedad anónima MySQL AB, que en 1995, tan solo un año después de comenzar con el desarrollo, publicó la primera versión del sistema de gestión de bases de datos (DBMS) de código abierto MySQL, lo que supuso el inicio de una historia de éxito a nivel mundial. Esta culminó en 2008 con la venta del proyecto de software a Sun Microsystems por mil millones de dólares.

En el año 2009, Widenius abandonó el proyecto de software junto con otros de los desarrolladores principales de MySQL para concentrarse en el desarrollo de MariaDB, la bifurcación de MySQL. El motivo de la ruptura fue la inminente adquisición de Sun por parte del polémico gigante del software Oracle, que se produjo en el año 2010. El equipo de desarrolladores temía que Oracle entrara en un conflicto de intereses si la empresa desarrollaba el software de código abierto MySQL y, de manera simultánea, un software de bases de datos propietario.

Según Widenius, el objetivo de MariaDB es:

  • mantener reunidos a los creadores de MySQL,
  • fomentar la continuidad en el desarrollo de la comunidad y
  • garantizar que siempre haya disponible una versión de MySQL gratuita.

Con este propósito, Widenius creó en el año 2012 la MariaDB Foundation. El desarrollo de la bifurcación de MySQL se llevó a cabo en primera instancia a través de Monty Program AB, empresa fundada en 2009. Esta se fusionó en 2014 con SkySQL, formando la MariaDB Corporation.

Hecho

Para la denominación de los proyectos de código abierto que ha desarrollado, Michael “Monty” Widenius ha recurrido a sus hijos. El My de MySQL se corresponde con el nombre de su hija mayor. La bifurcación de MySQL lleva el nombre de su hija pequeña Maria, y el nombre de su hijo Max está presente en MaxDB y MaxScaler.

Mientras que la MariaDB Foundation se encarga del desarrollo del proyecto comunitario MariaDB Server, la MariaDB Corporation se centra en la actividad comercial de la empresa. Con esta división, bien recibida por la comunidad de código abierto, la empresa pretende distanciarse de Oracle Corporation, que mantiene las dos áreas empresariales bajo la misma dirección.

MariaDB prioriza el desarrollo abierto, con dos principios básicos:

  • El código fuente de las partes de programa que se encuentran en fase de desarrollo está disponible en repositorios públicos.
  • Todas las fases de desarrollo se documentan de manera pública.

Por el contrario, el sistema de licenciamiento dual de Oracle ha recibido fuertes críticas por parte de la comunidad de código abierto. Estas se basan en las crecientes diferencias entre la versión de la comunidad de código abierto y los productos MySQL propietarios. En el pasado también se criticó el tratamiento opaco de los fallos de software.

Cronología del desarrollo de MySQL y MariaDB

1995 Primer lanzamiento internacional del DBMS de código abierto MySQL por parte de MySQL AB
2008 Venta de MySQL a Sun Microsystems
2009 Lanzamiento de la bifurcación de MySQL, MariaDB, por parte de Monty Program AB
2010 Adquisición de Sun Microsystems por parte de Oracle
2012 Creación de la MariaDB Foundation
2014 Fusión de Monty Program AB con SkySQL, que pasan a llamarse MariaDB Corporation.
Consejo

Crea un "hogar" seguro para tus proyectos web con Hosting SQL Server de IONOS.

Comparativa MySQL vs. MariaDB

Los sistemas de gestión de bases de datos MySQL y MariaDB están basados en el mismo núcleo de software. MariaDB es una bifurcación (“fork” en inglés) de MySQL 5.1, aunque con el paso del tiempo se ha convertido en un sistema de gestión de bases de datos autónomo. Aquí presentamos las principales diferencias entre las versiones actuales GA (General Availability) MySQL 8.0.11 y Maria 10.2.8 y nos centramos en los siguientes puntos:

  • estructura de la base de datos,
  • motores de base de datos,
  • consultas de base de datos,
  • rendimiento,
  • alta disponibilidad,
  • seguridad,
  • ecosistema,
  • asistencia técnica y
  • documentación y comunidad.

Estructura de la base de datos

El desarrollo de MariaDB se basa en la necesidad de garantizar la compatibilidad total con la estructura de la base de datos, así como con las API y los archivos de configuración de MySQL, para facilitar de este modo su reemplazo inmediato (drop-in replacement). El paso de MySQL a MariaDB o viceversa debería ser exactamente igual de sencillo que una actualización entre dos versiones diferentes de MySQL. El equipo de desarrolladores de MariaDB ha conseguido alcanzar este objetivo hasta la versión 7 de MySQL.

En principio, los dos sistemas de gestión de bases de datos están basados en la misma estructura de base de datos. Ambos sistemas cumplen con el modelo de base de datos relacional. La definición de archivos y tablas es compatible y se utilizan protocolos, estructuras e interfaces de programación idénticos. Todos los conectores de MySQL se pueden utilizar con MariaDB sin necesidad de modificarlos, de tal forma que las aplicaciones y herramientas queden interconectadas por medio de interfaces de base de datos estándar como ODBC o JDBC. En relación con las tareas administrativas y la creación de copias de seguridad, en MariaDB también se utilizan herramientas de línea de comandos como mysqldump o mysqladmin.

Para reducir los problemas de compatibilidad al mínimo, el equipo de desarrolladores de MariaDB sincroniza mensualmente el código fuente de la bifurcación con el código de MySQL. Sin embargo, la compatibilidad binaria entre ambos sistemas de gestión de bases de datos finaliza con MySQL 8. A partir de la versión 8.0, MySQL deja de ofrecer compatibilidad descendiente, ni con versiones anteriores de MySQL ni de MariaDB.

Un ejemplo de que el desarrollo de ambos proyectos de código abierto va en direcciones diferentes es el nuevo diccionario de datos transaccional de MySQL 8. Este forma parte de una estrategia para el procesamiento de metadatos que se diferencia radicalmente de los conceptos anteriores. Debido a que actualmente MariaDB no ha desarrollado ninguna característica similar, se parte de la base de que en un futuro no va a existir compatibilidad a nivel de archivos de datos.

Nota

MariaDB se ha consolidado como sustituto 1:1 con compatibilidad binaria para MySQL. Sin embargo, esta compatibilidad se interrumpe a partir de la versión MySQL 8.0.

Motores de base de datos

En el futuro, el objetivo de MariaDB es diferenciarse de MySQL sobre todo a través de la flexibilidad. Además de los motores estándar compatibles con MySQL, los usuarios disponen de un número cada vez mayor de motores de base de datos alternativos para casos de aplicación especiales.

Nota

Un motor de base de datos es un subsistema de almacenamiento que permite al sistema de gestión de bases de datos la creación, lectura, actualización y eliminación de datos en tablas de bases de datos, véase a este respecto CRUD.

La siguiente tabla muestra los motores de base de datos disponibles para MySQL 8.0.11 y MariaDB 10.3 (según la documentación proporcionada).

Motor de base de datos

MySQL 8.0.11

MariaDB 10.3.8

Descripción

InnoDB/ XtraDB

InnoDB es el subsistema de almacenamiento estándar para MySQL (a partir de la versión 5.5). Hasta la versión 10.1, MariaDB utilizó la bifurcación de InnoDB ampliada XtraDB a modo de motor de base de datos estándar. A partir de la versión 10.2, InnoDB también se utiliza como subsistema de almacenamiento en MariaDB. InnoDB ofrece accesos de lectura y escritura seguros para transacciones.

MyISAM

MyISAM, el subsistema de almacenamiento estándar para las versiones anteriores de MySQL, ofrece accesos rápidos a índices y tablas de bases de datos. Sin embargo, a diferencia de InnoDB, MyISAM no ofrece seguridad en las transacciones.

MEMORY

MEMORY es un subsistema de almacenamiento para datos temporales: mientras la definición de tabla se encuentra en el disco duro, los datos se conservan en la memoria principal. MEMORY es apto para bases de datos en memoria con rápidos tiempos de acceso y una latencia reducida.

CSV

El motor CSV almacena datos en formato CSV a modo de campos de datos separados por comas.

Archive

El motor de base de datos está diseñado para el almacenamiento a largo plazo de grandes cantidades de datos y ofrece diversos algoritmos de compresión que permiten un almacenamiento de datos que ahorra espacio.

BLACKHOLE

BLACKHOLE actúa como revisor de instrucciones SQL. En lugar de almacenar datos, BLACKHOLE únicamente registra los elementos de sintaxis SQL.

Merge

El motor de base de datos permite combinar varias tablas MyISAM con la misma estructura en una tabla conjunta.

Federated/ FederatedX

El subsistema de almacenamiento Federated permite a MySQL acceder de manera remota a tablas ubicadas en otro servidor. MariaDB utiliza la bifurcación FederatedX.

ColumnStore

ColumnStore consiste en una transferencia de InfiniDB que permite el procesamiento basado en columnas de grandes cantidades de datos con tamaños en torno a los petabytes.

Aria

Desde 2007, Aria se ha desarrollado como una opción de MyISAM resistente a caídas.

Cassandra

Gracias a Cassandra, los usuarios de MariaDB cuentan con un motor de base de datos para la gestión de datos estructurados de gran tamaño. El software sigue un planteamiento no relacional (NoSQL) y está diseñado para proporcionar una elevada disponibilidad y seguridad a prueba de fallos (sin único punto de error).

CONNECT

El motor de almacenamiento CONNECT permite el acceso a diversas fuentes de datos externas como DBase, CSV, DOS, FMT y XML, tanto de manera local como remota.

Mroonga

Mroonga es un motor de base de datos basado en columnas que ofrece búsqueda de texto completo para diversos idiomas, incluidos chino, japonés y coreano.

MyRocks

El motor de base de datos MyRocks ha sido optimizado para un rápido almacenamiento de datos de baja latencia y ofrece una compresión considerablemente mejor que el subsistema de almacenamiento estándar InnoDB.

OQGRAPH

El motor de computación Open Query GRAPH (abreviado OQGRAPH) permite procesar datos en estructuras de base de datos jerárquicas (estructuras en árbol) y en gráficos complejos.

Sequence

El motor de almacenamiento Sequence permite a los usuarios generar secuencias numéricas ascendentes y descendentes de números enteros positivos, incluidos el valor de inicio, de final y el incremento.

SphinxSE

Sphinx Storage Engine (SphinxSE) supone una alternativa a la búsqueda de texto completo integrada de MariaDB. La búsqueda de texto es posible gracias al demonio de Sphinx searchd.

Spider

Spider es un motor de base de datos con función de sharding (particionamiento). Spider es compatible con el particionamiento de bases de datos y eXtended Architecture (XA). De esta forma, diversos recursos pueden interactuar con una misma transacción. Así es posible utilizar tablas de diferentes instancias de bases de datos como si se tratara de tablas de la misma instancia.

TokuDB

El motor de base de datos TokuDB ha sido desarrollado para el procesamiento de grandes cantidades de datos y está especialmente pensado para aplicaciones de macrodatos.

Consultas de base de datos

El campo de aplicación de MySQL no se diferencia del de MariaDB. Ambos DBMS buscan una compatibilidad al 100 % con el lenguaje de base de datos SQL. Los usuarios utilizan instrucciones SQL idénticas para crear, actualizar, recuperar o eliminar entradas de base de datos.

Consejo

Nuestro tutorial de MySQL para principiantes ofrece una introducción básica sobre instrucciones SQL.

Performance MySQL vs. MariaDB

La capacidad de rendimiento de un sistema de bases de datos suele influir directamente sobre los procesos empresariales. Muchos de los usuarios que se interesan por alguno de los proyectos de código abierto creados por Widenius se plantean sobre todo una pregunta: ¿en comparación con MySQL, MariaDB ofrece un mejor rendimiento? Las pruebas de referencia, como DBT 3, apuntan en esa dirección. Uno de los aspectos decisivos en este caso es qué motor de base de datos se utiliza. Ambas comunidades de desarrolladores publican las pruebas de referencia para instalaciones con diferentes motores de base de datos en sus páginas respectivas.

Sin embargo, el valor informativo de las pruebas de aplicación es limitado en la práctica, ya que el rendimiento de una base de datos depende fuertemente de la medida en que la implementación del software se ha ajustado a las necesidades. Por lo tanto, los usuarios deberán concentrarse sobre todo en qué posibilidades ofrece el sistema de gestión de bases de datos para adaptar el software a cada caso de aplicación.

MariaDB destaca en este caso no solo por su amplia selección de motores de base de datos alternativos, sino también porque ofrece un eficiente optimizador para consultas SQL. Para la optimización de consultas, a partir de la versión 10.0.1 MariaDB ya no apuesta por las estadísticas internas del motor de base de datos, sino por estadísticas de tablas independientes del motor. Estas se almacenan como tablas convencionales en la base de datos y permiten registrar y evaluar considerablemente más valores, que contribuyen a la creación de un plan ideal para la ejecución de instrucciones SQL.

Aquellos interesados pueden encontrar diferentes manuales para la optimización del rendimiento de bases datos en la documentación de MariaDB. Estos artículos ofrecen consejos de hardware e información sobre configuraciones de sistemas operativos, estrategias de optimización para estructuras de datos, optimización de índices, estrategias de rendimiento para consultas y subconsultas, optimización de tablas, consejos y trucos sobre variables del sistema, búfer, cachés y subprocesos, sobre mejoras del rendimiento interno de la base de datos, así como notas sobre codificación, funciones hash y compresión.

MySQL también ofrece gran cantidad de material informativo sobre la optimización de bases de datos. Sin embargo, la mayor parte de este material solo está disponible para usuarios que se registran con una cuenta web de Oracle.

Alta disponibilidad

Tanto MySQL como MariaDB son adecuados para escenarios con bases de datos distribuidas. Para poder ofrecer a los usuarios unos sistemas con alta disponibilidad y escalabilidad lineal, ambos proyectos de software ofrecen soluciones de clúster:

El clúster MySQL es una base de datos de transacciones en tiempo real basado en ACID que alcanza una disponibilidad del 99,9999 % por medio de una arquitectura multimaster sin single point of failure. La base de datos se puede escalar horizontalmente con hardware estándar y ofrece una función de compartir automáticamente para volúmenes de trabajo con lectura y escritura intensivas. El acceso a los datos se lleva a cabo según las necesidades por medio de las interfaces SQL o NoSQL. El clúster MySQL está disponible por separado y la versión actual es la 7.5. Al igual que MySQL, incluso la solución de clúster se vende con un sistema de licenciamiento dual. La versión comunitaria se ofrece con la GNU General Public License.

En las bases de datos distribuidas, MariaDB se basa en el software de clúster Galera de la empresa finlandesa de software Codership. A partir de la versión MariaDB 10.1, se incluye la correspondiente interfaz por defecto. Por lo tanto, no es necesario descargar una versión de clúster independiente. El clúster MariaDB Galera también está basado en una arquitectura multimaster. Como motor de base de datos para el funcionamiento en clúster se cuenta únicamente con InnoDB (o XtraDB). Para diferenciar la solución de clúster propia del producto de MySQL, el equipo de desarrolladores de MariaDB pone a disposición de los usuarios MaxScale, una ampliación especial para el sistema de gestión de bases de datos que ofrece diferentes funciones adicionales para el enrutamiento en sistemas distribuidos.

MaxScale es un proxy de base de datos que se ocupa principalmente de la distribución de cargas pero que, por medio de plugins, se puede configurar de tal forma que no solo transmita accesos a bases de datos, sino que, en caso necesario, los modifique según las necesidades. El proxy anonimiza o pseudoanonimiza datos sensibles, bloquea solicitudes según las reglas previamente establecidas, protege frente a denegaciones de servicio (DoS), inicia automáticamente estrategias de conmutación por error y aumenta el rendimiento de la base de datos mediante almacenamiento en caché y división lectura-escritura (redireccionamiento de accesos de lectura y escritura a diferentes instancias de bases de datos).

A diferencia de MariaDB Server, a partir de la versión 2 MaxScale ya no está cubierto por la licencia GPL. A cambio, MariaDB Corporation ha desarrollado un modelo de licenciamiento con Business Source License (BSL), cuyo objetivo es combinar las demandas de la comunidad de código abierto con las necesidades económicas del desarrollo de software.

Nota

Según los desarrolladores, Business Source License (BSL) es una alternativa al código cerrado y al open core. Aunque los usuarios tienen acceso al código fuente de BSL, la utilización del software está limitada a un periodo de tiempo concreto. Por ejemplo, MaxScale se puede utilizar de manera gratuita en escenarios con un máximo de tres instancias de bases de datos. Los usuarios que requieran más instancias de bases de datos deberán adquirir la licencia de uso oportuna. Si el periodo de tiempo definido por el proveedor ha expirado, la Business Source License se convierte automáticamente en una licencia de código abierto GPL equivalente. Cada lanzamiento de MaxScale queda a disposición de los usuarios como licencia GPL sin limitaciones al cabo de un máximo de 3 años.

Seguridad

Entre las principales funciones de seguridad de un sistema de gestión de bases de datos se encuentran la codificación, la autentificación y los roles de usuario.

Tanto MySQL como MariaDB ofrecen funciones de codificación para datos inactivos (data at rest). MySQL implementa una codificación de los datos almacenados en la base de datos con ayuda del motor de base de datos InnoDB a nivel de espacio de tabla, pero no permite codificar tablas por separado.

Nota

Los espacios de tabla (tablespaces) son unidades de almacenamiento lógicas de motores de base de datos relacionales como InnoDB, que contienen todos los datos del sistema de base de datos. Cada uno de los espacios de tabla contiene como mínimo un fichero de datos físico del sistema operativo subyacente en el que se almacenan tanto tablas de bases de datos como índices.

En cambio, MariaDB ofrece a partir de la versión 10.1 funciones de codificación claramente diferenciadas. Entre estas se incluye una codificación data at rest en los siguientes niveles de base de datos:

  • espacios de tabla InnoDB,
  • tablas InnoDB,
  • archivos de registro InnoDB,
  • tablas Aria,
  • archivos temporales y
  • archivos de registro binarios.

A través de claves de cifrado evolutivo, MariaDB ofrece además una función que permite determinar una fecha de expiración para la clave de codificación.

Ambos sistemas de gestión de bases de datos son compatibles con el servicio de administración de claves (KMS) de Amazon Web Services (AWS) a través de un plugin.

Tanto MySQL como MariaDB se basan en un sistema de plugin para la autentificación de usuarios. El equipo de desarrolladores de MySQL pone a disposición de los usuarios dos plugins de autentificación, sha256_password y caching_sha2_password. El segundo ofrece, además de la autentificación estándar por medio de algoritmo hash seguro, un almacenamiento en caché por parte del servidor que permite una reautentificación más rápida.

Hasta la versión 10.1.21, MariaDB también se basaba en el algoritmo hash seguro por medio de SHA‑1. A partir de la versión 10.1.22 se comenzó a utilizar el plugin ed25519. Este cuenta con un esquema de firma EdDSA que combina SHA-2 con Curve25519.

Las tecnologías de codificación que se utilizan en MariaDB provienen, entre otros, de Google y de la empresa alemana de software Eperi.

Ambos sistemas de gestión de bases de datos con compatibles con conexiones con codificación SSL.

La particularidad de MariaDB en el ámbito de la seguridad de bases de datos es el control del acceso basado en roles (role based access control, RBAC), que va implementado en el DBMS desde la versión 10.0.5. Simplifica considerablemente la gestión de derechos de acceso y reduce los fallos en la asignación de derechos. A este respecto, en MySQL no es posible encontrar ninguna característica similar.

Ecosistema

El sistema de licenciamiento dual de Oracle para MySQL obedece a una estrategia open core. Mientras que la edición comunitaria de MySQL está disponible con código fuente público de manera gratuita, hay diversas ampliaciones para el sistema de gestión de bases de datos que solo se ofrecen en combinación con una de las ediciones comerciales. Gracias al sólido vínculo con la comunidad de código abierto, el equipo de desarrolladores de MariaDB es capaz de implementar interfaces de alternativas de código abierto para la mayoría de productos MySQL propietarios.

Función

MySQL

MariaDB Server

Monitorización

MySQL Enterprise Monitor (propietario)

Webyog Monyog (propietario)

Copia de seguridad

MySQL Enterprise Backup (propietario)

MariaDB Backup (bifurcación de Percona XtraBackup, GPL)

Gestión SQL

MySQL Workbench (GPL/propietario)

Webyog SQLyog (GPL/propietario)

Equilibrio de cargas y enrutamiento

MySQL Router (GPL/propietario)

MariaDB MaxScale (BSL)

Cortafuegos

MySQL Enterprise Firewall (propietario)

MariaDB MaxScale (BSL)

Asistencia técnica

Tanto en MySQL como en MariaDB, la asistencia profesional está disponible únicamente para los clientes de pago.

Los usuarios que adquieren una licencia para los productos MySQL propietarios obtienen acceso a Oracle Premier Support. Este incluye asistencia 24x7, acceso a bases de datos de conocimiento, versiones de mantenimiento, corrección de errores, parches y actualizaciones. Además, Oracle Premier Support ofrece corrección de errores a distancia y asesoramiento profesional sobre optimización del rendimiento e instalación. En caso necesario, los usuarios pueden solicitar a técnicos de soporte la comprobación de replicaciones, particionamientos, esquemas, consultas, API, ampliaciones de servidor, así como funciones y rutinas definidas por el usuario.

MariaDB Corporation comercializa servicios de asistencia a través de una suscripción MariaDB. Esta incluye asistencia 24x7 con un tiempo de reacción máximo de 30 minutos, servicio de notificaciones, parches y corrección de errores. Además, se ofrecen otros servicios de pago como formaciones, administración de bases de datos a distancia, asesoramiento sobre rendimiento, alta disponibilidad, seguridad y pruebas de software y un servicio de migración. Según MariaDB Corporation, el equipo de asistencia técnica de la empresa ofrece asistencia profesional tanto para MariaDB como para MySQL.

Dado que el equipo de desarrolladores de MySQL cambió prácticamente al completo a MariaDB, MariaDB Corporation se enorgullece no solo de comprender el código de MariaDB, sino también el de MySQL, mejor que el equipo de asistencia de Oracle.

Documentación y comunidad

MySQL pertenece a Oracle Corporation, que ha dispuesto una gran cantidad de documentación sobre todos los proyectos de MySQL de código abierto en la página web oficial de MySQL. Además, las comunidades de usuarios disponen de las siguientes posibilidades para informarse sobre MySQL:

Por su parte, MariaDB Foundation es responsable de la documentación de MariaDB y cuenta para ello con el respaldo de la comunidad de usuarios.

Los usuarios que desean participar en el desarrollo y documentación de MariaDB Server o de las aplicaciones de código abierto del ecosistema MariaDB pueden encontrar más información al respecto en la página web de MariaDB Foundation.

MariaDB vs. MySQL: resumen de las características más importantes

MySQL es un sistema probado de gestión de bases de datos que proporciona software de código abierto a los usuarios y se puede complementar con numerosas ampliaciones profesionales. El equipo de desarrolladores de MariaDB, formado en torno a Michael Widenius, ha adoptado lo mejor del software principal MySQL y lo ha ampliado con numerosas características. En la siguiente tabla, donde se exponen las características principales de ambos DBMS, se muestra para quién merece la pena el cambio de MySQL a MariaDB.

Característica

MySQL

MariaDB

Año de aparición

1995

2009

Versión actual

MySQL 8.0.11

MariaDB 10.3.8

Desarrollador

Oracle

MariaDB Corporation AB (MariaDB Enterprise)

MariaDB Foundation (MariaDB Server)

Licencia

Sistema de licenciamiento dual (propietario y GPL 2)

GPL 2

Sistemas operativos

Oracle Linux

Red Hat

CentOS

Oracle Solaris

Ubuntu

Debian

SUSE Enterprise Linux

Microsoft Windows

Microsoft Windows Server

Apple macOS

FreeBSD

Solaris

Red Hat / CentOS

Ubuntu

Debian

Mint

SUSE Enterprise Linux

openSUSE

Microsoft Windows Server

Microsoft Windows

Manjaro

Fedora

Arch Linux

Apple macOS

Lenguaje de programación

C y C++

C, C++, Bash y Perl

Modelo de base de datos primario

Modelo de base de datos relacional

Modelo de base de datos relacional

Modelo de base de datos secundario

Modelo de base de datos orientado a documentos

Base de datos de valor clave

Modelo de base de datos orientado a documentos

Base de datos de valor clave

Base de datos orientada a gráficos

Interfaz SQL

Interfaces NoSQL

Protocolo

Protocolo MySQL

Protocolo MySQL

Replicación

Replicación con GTID (Global Transaction Identifier)

- Replicación maestro-maestro

- Replicación maestro-esclavo

Replicación con GTID (Global Transaction Identifier)

- Replicación maestro-maestro

- Replicación maestro-esclavo

Compatibilidad en memoria

Enrutamiento

MySQL Router (GPLv2)

MariaDB MaxScale (BSL)

Particionamiento (sharding)

Particionamiento horizontal, sharding con MySQL Cluster o MySQL Fabric

Particionamiento horizontal, sharding por medio de Spider, CONNECT o Galera

Gestión SQL

MySQL Workbench (Microsoft Windows, macOS y Linux)

SQLyog de Webyog (Microsoft Windows, Linux)

Monitorización

MySQL Enterprise Monitor (propietario)

Monyog de Webyog (Microsoft Windows y Linux) (propietario)

Codificación

Codificación de datos inactivos

- Espacios de tabla InnoDB

Codificación de datos inactivos

- Espacios de tabla InnoDB

- Tablas InnoDB

- Archivos de registro InnoDB

- Tablas Aria

- Archivos temporales

- Archivos de registro binarios

Controles de acceso basados en roles

No

Autentificación

Autentificación vía SHA-256

Autentificación vía plugin ed25519

Enmascaramiento de datos

Vía ProxySQL

Vía MariaDB MaxScale (BSL)

Cortafuegos

Vía MySQL Enterprise Firewall (propietario)

Vía MariaDB MaxScale (BSL)

Auditoría

Vía MySQL Enterprise Audit Plugin (propietario)

Vía MariaDB Audit Plugin

Análisis

No

Vía MariaDB ColumnStore

Enrutamiento y equilibrio de cargas

Vía MySQL Router

Vía MariaDB MaxScale (BSL)

Copia de seguridad

Vía MySQL Enterprise Backup (propietario)

Vía MariaDB Backup (una bifurcación de Percona XtraBackup)

Common Table Expression (CTE)

Función de ventana

Tablas temporales con gestión de versiones

No

Reescritura de consultas

No

Tipos de archivo

String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)

Numérico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)

Fecha/hora (DATE, DATETIME, TIMESTAMP, TIME, YEAR)

Tipos de datos de objeto grande (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)

String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)

Numérico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)

Fecha/hora (DATE, DATETIME, TIMESTAMP, TIME, YEAR)

Tipos de datos de objeto grande (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)

Tipos de datos espaciales

GEOMETRY

POINT

LINESTRING

POLYGON

MULTIPOINT

MULTILINESTRING

MULTIPOLYGON

GEOMETRYCOLLECTION

GEOMETRY

POINT

LINESTRING

POLYGON

MULTIPOINT

MULTILINESTRING

MULTIPOLYGON

GEOMETRYCOLLECTION

Motores de base de datos

InnoDB

MyISAM

MEMORY

CSV

Archivo

BLACKHOLE

Merge

Federated

InnoDB/XtraDB

MyISAM

MEMORY

CSV

Archivo

BLACKHOLE

Merge

FederatedX

ColumnStore

Aria

Cassandra

CONNECT

Mroonga

MyRocks

OQGRAPH

Sequence

SphinxSE

Spider

TokuDB

Conectores oficiales

ODBC

C++

C

ADO.NET

JDBC

PHP

Python

Perl

Ruby

Node.js

ODBC

C++

C

ADO.NET

JDBC

PHP

Python

Perl

Ruby

Excel

JavaScript

Swift

R

En resumen

Con MySQL, Oracle ofrece un probado sistema de gestión de bases de datos que, desde hace más de 20 años, goza de una gran popularidad en todo el mundo. Bajo el patrocinio de Oracle, MySQL puede reafirmarse como proyecto de software independiente que cuenta con mantenimiento, desarrollo y mejoras constantes. No obstante, quien desee explorar todas las posibilidades del ecosistema MySQL se encontrará rápido con los límites de la Community Edition gratuita. Oracle ofrece herramientas profesionales para las áreas de monitorización, copia de seguridad, equilibrio de carga, enrutamiento y seguridad de bases de datos únicamente para licencias propietarias.

MariaDB surgió a partir de MySQL, aunque actualmente se presenta como solución de bases de datos independiente para la utilización productiva.

Hecho

Entre otras razones, la consolidación de MariaDB como alternativa seria a MySQL se hace evidente por el hecho de que, desde finales de 2012, MariaDB ha sustituido a MySQL como instalación estándar en diversos distribuidores Linux, como Fedora, CentOS, openSUSE, Arch Linux, Debian y Red Hat Enterprise Linux. Otras aplicaciones conocidas y servicios web que apuestan por MariaDB son Google, Mozilla, Wikimedia Foundation, TeamSpeak y XAMPP.

Detrás de MariaDB se encuentra el equipo de desarrolladores de MySQL, que cuenta con el importante respaldo de la comunidad de código abierto. Esto permite a MariaDB Foundation proporcionar alternativas de código abierto para numerosas extensiones profesionales del ecosistema MySQL que no necesariamente cumplen con todos los estándares de código abierto concebidos por Bruce Perens y Eric S. Raymond.

En el futuro, el desarrollo de ambos proyectos de software se va a distanciar aún más. Aunque en un primer momento MariaDB había sido ideado como sustituto automático de código abierto para MySQL, en el futuro el desarrollo de características y extensiones exclusivas como MaxScale y ColumnStore van a tomar protagonismo. Estas nuevas posibilidades de aplicación dan ventaja a MariaDB sobre MySQL. La reputación del equipo de desarrolladores deja de ser un aspecto determinante para la cuestión “MySQL o MariaDB”. En cambio, adquiere relevancia la cuestión de en qué medida el espectro de funciones del correspondiente sistema de gestión de bases de datos es suficiente para cubrir el escenario de aplicación deseado.