MariaDB vs. MySQL
The following table illustrates the main differences between MariaDB and MySQL:
| MySQL | MariaDB | |
|---|---|---|
| Developer | Oracle Corporation | MariaDB Corporation AB (MariaDB Enterprise), MariaDB Foundation (community MariaDB Server) |
| Protocols | MySQL | MySQL + MariaDB |
| Source code | Open Source + Proprietary | Open Source |
| Development | Closed | Open |
| Collaboration | Limited | Extensive |
| Storage Engines | InnoDB MyISAM BLACKHOLE CSV MEMORY ARCHIVE MERGE | InnoDB MyISAM BLACKHOLE CSV MEMORY ARCHIVE MERGE ColumnStore MyRocks Aria SphinxSE TokuDB CONNECT SEQUENCE Spider Cassandra |
| CHECK constraint | No | Yes |
| DEFAULT expression | No | Yes. Also, support DEFAULT values for BLOB and TEXT columns |
| Virtual columns | Yes | Yes |
| Dynamic columns | No | Yes |
| Roles | Yes | Yes |
| DELETE … RETURNING | Yes | No |
| GIS support | Yes | Yes |
Progress Reporting for ALTER TABLE and LOAD DATA INFILE statement | No | Yes |
| Table Elimination | No | Yes |
| SQL Management | MySQL Workbench | SQLyog |
| Monitoring | MySQL Enterprise Monitor | Monyog |
| Backup | MySQL Enterprise Backup | MariaDB Backup |
| SQL Common Table Expressions (CTE) | Yes (since version 8.0) | Yes |
| SQL Window Functions | Yes (since version 8.0) | Yes |
| JSON Support | Yes | Yes |
| Data Masking | No | Yes. (MariaDB MaxScale) |
| Encryption | MySQL Enterprise Encryption | MariaDB Encryption |
| Database firewall | MySQL Enterprise Firewall | MaxScale Firewall |
| Auditing | MySQL Enterprise Audit | MariaDB Audit |
| Analytics | No | MariaDB ColumnStore |
| Partitioning | MySQL Partitioning | MariaDB Partitioning |
| Routing | MySQL Router | MariaDB MaxScale |
| Replication | MySQL Replication | MariaDB Replication |