Skip to content
Navigation

Type at least two characters. Search covers page titles, headings, tags and database names.

↑ ↓ to navigateEnter to openEsc to close0 pages
MariaDBbeginner

MariaDB Overview

What MariaDB is, how it relates to MySQL today, and when its differences matter operationally.

2 min readBeginnerUpdated Edit this page

MariaDB is a community-developed fork of MySQL, created in 2009 after Oracle's acquisition of Sun. It remains GPL-licensed and is governed by the MariaDB Foundation.

Early versions were drop-in replacements for MySQL. That is no longer accurate: since MySQL 8.0 and MariaDB 10.x the two have diverged in replication, JSON handling, data dictionary implementation and several system tables. Treat them as related engines with a shared history and a mostly shared dialect, not as interchangeable.

What MariaDB adds

  • Galera Cluster built in. Synchronous multi-primary replication is part of the distribution, not an add-on. See Galera Cluster.
  • More storage engines. Aria, ColumnStore, Spider and MyRocks alongside InnoDB. See Storage Engines.
  • System-versioned tables. Temporal tables with WITH SYSTEM VERSIONING, allowing queries against the state of a row at a past time.
  • Different optimiser features, including its own histogram implementation and additional join strategies.

Architecture

The core is the same as MySQL's: a SQL layer over pluggable storage engines, with InnoDB as the default transactional engine. Everything in InnoDB Architecture — clustered primary keys, the buffer pool, redo and undo logs — applies to MariaDB.

The differences that show up in operations are in replication and in system tables, which is why tooling written against one may not work against the other.

Best use cases

  • Deployments that want a GPL-licensed engine with an independent governance model.
  • Workloads that benefit from synchronous multi-primary clustering with the vendor's own tooling.
  • Environments already standardised on MariaDB, where the operational knowledge exists.

When not to use it

  • When you depend on MySQL-specific features that MariaDB implements differently or not at all — particularly around JSON functions, the data dictionary and some 8.0 replication features.
  • When your tooling (managed services, CDC connectors, monitoring agents) is validated against MySQL only. Verify compatibility rather than assuming it.

Consistency and transactions

Identical to MySQL/InnoDB: REPEATABLE READ by default, MVCC reads, next-key locking. See MySQL Isolation Levels, which applies unchanged.

Replication

Asynchronous and semi-synchronous replication work as in MySQL, but MariaDB uses its own GTID formatdomain_id-server_id-sequence — which is not compatible with MySQL's. This is the single most important operational difference and is what makes replication between the two engines impossible without a logical intermediary. See Replication.

Common mistakes