MariaDB es un sistema de gestión de bases de datos relacionales (SGBD) de código abierto que comparte un origen común con MySQL, del cual fue bifurcado en 2009 por los desarrolladores originales de MySQL tras el anuncio de la compra de Sun Microsystems —entonces propietaria de MySQL— por parte de Oracle. Ante la preocupación de que Oracle restringiera el desarrollo abierto de MySQL, sus creadores optaron por bifurcar el código para garantizar que siguiera disponible como software libre bajo la licencia GPL. La primera versión se publicó el 29 de octubre de 2009.

Aunque nació como un reemplazo directo de MySQL, con el que mantuvo una alta compatibilidad de órdenes, interfaces y bibliotecas, MariaDB se ha desarrollado de forma independiente desde 2012 y ha divergido de este en varias características, sintaxis y comportamiento. Tras más de quince años de desarrollo, ha evolucionado hasta convertirse en un sistema con capacidades propias que abarcan cargas de trabajo transaccionales, analíticas y de inteligencia artificial, entre ellas un modo de compatibilidad con Oracle Database y búsqueda vectorial nativa.

El desarrollo de MariaDB recae conjuntamente en la Fundación MariaDB —una organización sin ánimo de lucro que vela por que el código del servidor permanezca abierto e independiente de cualquier entidad comercial—, en MariaDB plc —la empresa que desarrolla los productos empresariales, los servicios en la nube y el soporte comercial en torno a MariaDB, y que es su principal contribuidora de código— y en una amplia comunidad de colaboradores. Michael «Monty» Widenius, cofundador de MySQL AB y creador de ambos proyectos, ejerce como director de tecnología (CTO) tanto de la Fundación como de MariaDB plc.

Nombre y logo MariaDB debe su nombre a Maria, la hija menor de su fundador Michael Widenius; MySQL fue nombrado en honor a su otra hija, My.

Su logotipo es un león marino, que Widenius eligió tras un encuentro con leones marinos mientras practicaba esnórquel junto a su hija My en las islas Galápagos en 2002. Maria dio posteriormente su aprobación al león marino como emblema del proyecto.

Historia

Orígenes y compatibilidad con MySQL (2009–2012) MariaDB fue creado en 2009 por Michael «Monty» Widenius y otros desarrolladores originales de MySQL, tras el anuncio de la adquisición de Sun Microsystems —propietaria de MySQL desde 2008— por parte de Oracle. Ante la preocupación de que Oracle restringiera el desarrollo de código abierto de MySQL, Widenius y sus colaboradores bifurcaron el código para garantizar que permaneciera disponible libremente bajo la GNU General Public License.

La primera versión, MariaDB 5.1.38, se publicó el 29 de octubre de 2009. Tras la adquisición por parte de Oracle, un gran número de ingenieros del equipo de MySQL abandonó la empresa y se incorporó al proyecto MariaDB a través de Monty Program Ab, la compañía de Widenius. La empresa empleaba el llamado Hacking Business Model, por el que todos los empleados eran copropietarios.

Las primeras versiones utilizaron una numeración que imitaba la de MySQL —5.1, 5.2, 5.3 y 5.5— para señalar su compatibilidad directa. MariaDB llegó a publicar versiones 5.2 y 5.3 que MySQL nunca lanzó. El esfuerzo de este período se centró en mejorar el optimizador y los motores de almacenamiento: se desarrolló Aria como reemplazo de MyISAM resistente a fallos, y se introdujeron o mejoraron motores adicionales como FederatedX, OQGraph y PBXT.

La Fundación Wikimedia migró las bases de datos de Wikipedia a MariaDB en 2013; Google y Mozilla también figuraron entre sus primeros usuarios destacados. La primera distribución importante en incluir MariaDB como base de datos predeterminada fue openSUSE 12.3, en 2013, seguida de Fedora 19 ese mismo año.

Desarrollo independiente (2012–presente) En 2012, los desarrolladores anunciaron que MariaDB pasaría a una nueva serie de versiones 10.y.x, señalando explícitamente que el proyecto se desarrollaba de forma independiente en lugar de seguir los lanzamientos de MySQL.

La serie MariaDB 10.y.x, iniciada con la versión 10.0 en 2014, incorporó varias capacidades que distinguieron a MariaDB de MySQL, entre ellas la creación de clústeres multiprimarios virtualmente síncronos mediante Galera Cluster y un modo de compatibilidad con Oracle que habilita la sintaxis de procedimientos almacenados PL/SQL. La primera versión con soporte a largo plazo (LTS) fue la 10.6, en 2021.

La serie MariaDB 11.y.x comenzó en 2022; su desarrollo más significativo fue la incorporación de capacidades nativas de búsqueda vectorial en 2024, que permiten cargas de trabajo orientadas a IA sin necesidad de una extensión independiente. Estas funciones alcanzaron disponibilidad general en la versión LTS 11.8, en mayo de 2025.

La serie MariaDB 12.y.x comenzó con la versión 12.0 en agosto de 2025, e introdujo un modelo de lanzamiento continuo (rolling release) junto al modelo LTS ya establecido. La serie ha visto crecer el número de colaboradores externos: los lanzamientos de mayo de 2026 recibieron contribuciones de 57 colaboradores ajenos a MariaDB plc.

MariaDB 13.0 se publicó en marzo de 2026 como versión preliminar (preview) dentro del modelo de lanzamiento continuo, con mejoras en SQL procedimental, motores de almacenamiento, rendimiento y observabilidad, e incorporó un número notable de contribuciones de la comunidad.

La hoja de ruta de MariaDB se define de forma colaborativa entre MariaDB plc y la comunidad; cualquier colaborador puede proponer funciones o registrar peticiones directamente en el sistema de seguimiento de incidencias JIRA del proyecto.

Características técnicas

Compatibilidad con MySQL Las dos características principales que distinguen a MariaDB y MySQL de PostgreSQL son el uso de hilos en lugar de procesos, y un soporte amplio e integrado para configuraciones de replicación, tanto locales como globales. Esto incluye replicación geodistribuida y configuraciones multiprimarias mediante Galera Cluster.

La API y el protocolo de MariaDB son compatibles con los de MySQL, incluyendo soporte para operaciones nativas no bloqueantes e informes de progreso. La mayoría de los conectores, bibliotecas y aplicaciones desarrollados para MySQL funcionan con MariaDB. Los conectores oficiales de MariaDB están licenciados bajo LGPL, lo que permite su uso en aplicaciones comerciales sin las exigencias de copyleft, y son ampliamente utilizados por las distribuciones de sistemas operativos para conectarse tanto a MariaDB como a MySQL.

El formato en disco de MySQL y MariaDB fue idéntico hasta MySQL 5.7. MySQL 8.0 cambió dicho formato —eliminando los archivos de esquema .frm, cambiando el protocolo de autenticación predeterminado y modificando otras características—, por lo que mover datos entre MySQL 8.0 (o posterior) y MariaDB requiere un volcado y una restauración. La mayoría de las funciones visibles para el usuario comparten en gran medida la misma sintaxis, lo que facilita la migración de MySQL a MariaDB. La replicación entre MySQL y MariaDB en ambas direcciones sigue siendo posible.

Algunas funciones divergen en mayor medida, como el formato de replicación GTID y la implementación de almacenamiento de JSON.

MariaDB incluye un grupo de hilos (thread pool) integrado en todas sus ediciones, incluida la versión comunitaria, que gestiona las conexiones mediante un pequeño grupo de hilos de trabajo en lugar de un modelo de un hilo por conexión. El grupo de hilos de MySQL, reservado durante mucho tiempo a la edición comercial MySQL Enterprise Edition, está disponible en MySQL Community Edition desde la versión 26.7.0 (Early Access).

Compatibilidad con Oracle El modo de compatibilidad con Oracle (sql_mode=ORACLE), disponible desde MariaDB 10.3, está diseñado para facilitar una migración incremental desde Oracle Database, permitiendo portar aplicaciones función por función o aplicación por aplicación en lugar de requerir una reescritura completa. El modo Oracle habilita la sintaxis de procedimientos almacenados PL/SQL, un manejo de NULL compatible con Oracle, y funciones al estilo Oracle como NVL() y DECODE(). En muchos casos, las aplicaciones de Oracle pueden ejecutarse sin modificaciones en MariaDB simplemente sustituyendo el conector ODBC o JDBC de Oracle por el de MariaDB. El modo Oracle fue desarrollado originalmente en colaboración con DBS Bank.

Las secuencias, creadas con CREATE SEQUENCE, son objetos de base de datos de primera clase independientes de cualquier tabla concreta, con soporte para secuencias descendentes y control de caché de grano fino; MySQL carece de una sentencia CREATE SEQUENCE equivalente.

Motores de almacenamiento MariaDB admite una arquitectura de motores de almacenamiento conectables, lo que permite elegir un motor distinto para cada tabla según las necesidades de la carga de trabajo, un abanico más amplio que el de MySQL, centrado en InnoDB.

InnoDB: el motor predeterminado, que ofrece transacciones compatibles con ACID, bloqueo a nivel de fila, claves foráneas y recuperación ante fallos. Aria: motor resistente a fallos utilizado internamente para tablas temporales y de sistema, con recuperación mediante un registro de transacciones de escritura anticipada (write-ahead log). MyRocks: basado en RocksDB, un motor de tipo log-structured merge-tree desarrollado por Meta, que ofrece mayor rendimiento de escritura y mejor compresión para cargas de trabajo intensivas en escritura. Heap/Memory: motor de almacenamiento en memoria para datos temporales de acceso rápido; los datos se pierden al reiniciar el servidor. Spider: motor de fragmentación (sharding) que distribuye los datos entre varias instancias de MariaDB, permitiendo consultarlas de forma transparente como si fueran una sola tabla; admite particionado y transacciones XA. CONNECT: permite a MariaDB consultar fuentes de datos externas —incluyendo CSV, ODBC, JDBC, MongoDB y otros formatos— como si fueran tablas SQL estándar. DuckDB: motor de almacenamiento conectable que integra el motor analítico columnar de DuckDB dentro de MariaDB Server.

Transacciones y concurrencia MariaDB ofrece transacciones totalmente compatibles con ACID, con soporte para varios niveles de aislamiento: lectura no confirmada (read uncommitted), lectura confirmada (read committed), lectura repetible (repeatable read) y serializable. El motor de almacenamiento predeterminado, InnoDB, implementa control de concurrencia multiversión (MVCC), lo que permite que lectores y escritores operen de forma concurrente sin bloquearse entre sí. Desde MariaDB 11.8, el aislamiento por instantánea (snapshot isolation) utiliza por defecto el modo estricto, lo que garantiza que las transacciones vean una vista coherente de la base de datos desde su momento de inicio.

Arquitectura de complementos Además de los motores de almacenamiento, MariaDB dispone de un conjunto de API conectables (pluggable). Las categorías de complementos incluyen:

Métodos de autenticación Búsqueda de texto completo, incluyendo Mroonga para idiomas CJK (chino, japonés y coreano) Auditoría: registro de la actividad de la base de datos con fines de seguridad y cumplimiento normativo Gestión de claves de cifrado, incluyendo integración con HashiCorp Vault y AWS Key Management Complementos de monitorización y estadísticas Validación de contraseñas Handler Socket: una API de alta velocidad para utilizar tablas InnoDB como almacén clave-valor Métodos de compresión: bzip2, lz4, lzma, lzo y snappy Tipos de datos conectables, incluyendo inet, json, uuid y mysql_json Funciones definidas por el usuario, cargables en C, C++ o Rust; se admiten tanto funciones simples como funciones de agregación (group-by)