| Aspect | MySQL | MariaDB |
|---|---|---|
| Origin | The original project, owned by Oracle | A 2009 fork of MySQL, developed by MariaDB Foundation and MariaDB plc |
| License | GPLv2 for Community, Oracle also sells commercial editions | GPLv2, fully open |
| Compatibility | The reference for protocol and clients | Same protocol, most apps work unchanged, but newer versions have differences |
| JSON | Native JSON type with binary storage | JSON as an alias of a text type with functions to work with it |
| Storage engines | Mostly InnoDB | InnoDB plus extras: Aria, ColumnStore, MyRocks, Spider |
| Clustering | Group Replication and InnoDB Cluster | Galera Cluster bundled with the distribution |
| Unique features | Close ties with the Oracle ecosystem, HeatWave in Oracle Cloud | Sequences and system-versioned temporal tables |
| Managed services | Available in almost every cloud (RDS, Cloud SQL, Azure) | Available in RDS and Azure, shipped as a package by Linux distributions |
Choose MySQL when
- Your hosting or CMS explicitly requires MySQL.
- You need the native JSON type and Oracle tooling compatibility.
- You want maximum predictability for apps targeting MySQL.
Choose MariaDB when
- You want a fully open project with no Oracle dependency.
- You need Galera, sequences or temporal tables.
- Your Linux distribution ships MariaDB by default.
Bottom line
For a typical web app the difference is small, both give a mature relational store. Check what your app requires, and do not mix them in one replication setup without testing. For a new project with no constraints, many teams pick PostgreSQL instead.
Compared
Logos belong to their owners and are used for identification only. Icons: Simple Icons (CC0), Devicon (MIT).