
For a long time, the honest answer to "MariaDB or MySQL?" was "it doesn't matter much." MariaDB was a fork that tracked MySQL closely, and you could swap one for the other without your application noticing.
That's less true every year. In mid-2024 they're two related but distinct databases, with different features, different release models and different corporate stories. If you're choosing, or migrating, the differences are worth knowing.
One father, two daughters
MySQL was created in 1995 by Michael "Monty" Widenius, David Axmark and Allan Larsson, and their company MySQL AB made it the M in the LAMP stack, the default database of the early web. It was free and open source under the GPL, and MySQL AB sold commercial licenses and support to companies that wanted them.
In 2008 Sun Microsystems bought MySQL AB for about $1 billion. In 2010 Oracle completed its purchase of Sun, which meant the world's most popular open source database now belonged to the world's largest commercial database company. Plenty of people, Monty among them, didn't expect that to end well for MySQL.
In 2009, anticipating the Oracle deal, Monty forked MySQL as MariaDB. MySQL was named after his daughter My, and MariaDB after his younger daughter Maria. The goal was a fully open, community-governed continuation of MySQL that no single company could take away.
How they differ now
Compatibility. MariaDB stayed a near drop-in replacement through MySQL 5.5. Since then, both have added features the other doesn't have, so "compatible" now means "compatible for typical applications." Replication between them, global transaction IDs, the authentication plugins and some system tables all differ. Test before you switch.
JSON. MySQL has a native binary JSON data type, stored efficiently and indexable through generated columns. In MariaDB, JSON is an alias for LONGTEXT with validation. Both have JSON functions, with different sets and some different behavior. If your application leans heavily on JSON, this is often the deciding factor.
Storage engines. Both default to InnoDB. MariaDB used Percona's XtraDB as its default engine for years, but switched back to InnoDB in 2017. MariaDB also ships extra engines, including Aria, ColumnStore for analytics, Spider for sharding and MyRocks. MySQL's main extra is HeatWave, Oracle's in-memory analytics engine, which lives in Oracle's cloud.
Features. MariaDB added system-versioned tables, which let you query a table as it was at a past time, sequences, a built-in thread pool in the community edition and Oracle-compatible PL/SQL syntax. MySQL 8.0 brought a transactional data dictionary, instant schema changes for many common alterations and its document store. MariaDB actually shipped window functions and common table expressions first, in 2017.
Release model. Both changed recently. MySQL now has long-term support releases, the first of which, 8.4 LTS, came out in April, and short-lived "Innovation" releases in between, the first of which, 9.0, shipped this month. MySQL 8.0 itself reaches end of life in April 2026. MariaDB ships long-term releases supported for five years, the latest being 11.4 LTS from May, plus short-term releases.
Licensing. Both servers are GPLv2. MySQL's copyright belongs entirely to Oracle, which also sells it under commercial licenses, and its Enterprise Edition adds closed-source features. MariaDB's server code is GPL, with its trademark held by the non-profit MariaDB Foundation. Some of MariaDB plc's tools aren't: its MaxScale proxy uses the Business Source License, a "source available" license that MariaDB's own people invented in 2013, long before HashiCorp made it famous.
The corporate drama
Neither side is drama-free:
- Oracle keeps MySQL alive and actively developed, but development happens behind closed doors and lands in big code drops. Outside contributions are rare, and the community has little say in its direction.
- MariaDB is split between the non-profit MariaDB Foundation, which stewards the open source project, and MariaDB plc, the company that does most of the development and sells support. The company went public through a SPAC in 2022, struggled badly, and is in the middle of being acquired by the private equity firm K1 right now. That's a reminder that a foundation-held trademark and a GPL codebase matter: whatever happens to the company, the code and the name can't disappear.
Which to use
- Your distribution may have chosen for you. Debian and its derivatives install MariaDB when you ask for a MySQL server. Fedora and RHEL ship both and let you pick. For a typical LAMP application, WordPress, Nextcloud or most PHP software, MariaDB is fine and well supported.
- Use MySQL if your application depends on MySQL 8 features like native JSON, if you're on a managed cloud service built on it, or if your vendor certifies only MySQL.
- Use MariaDB if you want a community-governed open source database, need its extra storage engines or system-versioned tables, or just want what your distribution ships.
- Consider PostgreSQL for new projects with complex data and queries. It's beyond the scope of this comparison, but it's where a lot of new development has gone, and it's governed by a community with no single owner at all.
Whichever you pick, test your backups, set innodb_buffer_pool_size sensibly and pin your major version. Most database "incompatibilities" people hit are upgrades they didn't mean to make.
Since then
Added October 2026. K1 completed its purchase of MariaDB plc in September 2024 and took it private. MySQL 8.0 reached its end of life in April 2026, so anyone still on it should be on 8.4 LTS or MariaDB by now.