MariaDB vs MySQL: The Ultimate Comparison
Tags: mariadb, mysql
Published: 2024-01-04 08:00:00

**Explore this complete MariaDB vs. MySQL guide and find out the distinctive elements that set these two database management systems apart.**

---
Tools used in this tutorial
[DbVisualizer](https://www.dbvis.com/download/), top rated database management tool and SQL client.
The [MariaDB](https://mariadb.org/) database.

---
MariaDB and MySQL are two of the most widely used DBMSs, with a market share of more than 40%in the relational database world. While they have the core implementation in common, they are characterized by some fundamental differences that make them better suited for different scenarios.

In this MariaDB vs MySQL comparison article, you will take a look at the history of these technologies, exploring their similarities and differences to help you dispel doubts about the two databases.

## What Are MariaDB and MySQL?
[MySQL](https://www.mysql.com/) is the most popular open-source relational database system ([RDBMS](https://en.wikipedia.org/wiki/Relational_database)), which has become so widely adopted thanks to its speed, ease of use, and flexibility. The project has historically focused on simplicity. It uses the SQL language to query the database.

[MariaDB](https://mariadb.org/) is a fork of MySQL that aims to build an improved version of the popular RDBMS system. It comes with several built-in powerful features, security, and performance improvements that you cannot find in MySQL, offering great data processing capabilities for both small and enterprise businesses.

## History of MariaDB and MySQL Databases
In 1994 in Sweden, [Michael "Monty" Widenius](https://en.wikipedia.org/wiki/Michael_Widenius) together with his colleagues David Axmark and Allan Larsson, began working on a new relational database management system. They named the open-source project "MySQL," which is a combination of "My," the name of Widenius' daughter, and "SQL," representing the chosen query language.

In the early years, MySQL was relatively small-scale but started to gain popularity thanks to its ease of use and compatibility with various programming languages. In 1995, [MySQL AB](https://en.wikipedia.org/wiki/MySQL_AB) was founded to provide commercial support to the project. The database kept gaining traction, and MySQL AB was acquired by Sun for approximately $1 billion in 2008. In 2008, Sun was eventually acquired by Oracle. These acquisitions fueled apprehensions about MySQL's future and open-source nature.

In response to these concerns, Michael Widenius decided to take action. In 2009, he forked the MySQL codebase and created a new project called MariaDB. This new RDBMS was designed to be a drop-in replacement for MySQL, offering enhanced features, performance improvements, and the promise of true open-source development.

MariaDB remains committed to open-source principles, with its source code available under the GNU General Public License ([GPL](https://en.wikipedia.org/wiki/GNU_General_Public_License)), while MySQL is currently released under both GPLv2 and proprietary licenses. 

## MariaDB vs MySQL: Top Similarities
Here is a list of the essential similarities between MariaDB and MySQL to know:

- **Common core:** Since MariaDB is a fork of MySQL, they originate from the same codebase. This means that they share a significant portion of features. In particular, MariaDB’s stated goal is to strive for interoperability and maintain compatibility with MySQL.
- **Open source:** Both MariaDB and MySQL are open-source databases, allowing the public to access, modify, and distribute their source code freely.
- **SQL support:** They both utilize the SQL language as the standard interface for querying, manipulating, and managing data within the relational database.
- **Relational database model:** Both databases offer a database solution based on the relational database, organizing data into tables with rows and columns, and supporting relationships through primary and foreign key constraints.
- **Data integrity and indexing:** Both databases have data consistency mechanisms such as constraints, data types, and triggers. Also, they support indexes to improve query performance. Follow our guide on how to achieve 10x query performance with a database index.
- **Security measures:** They offer similar base security features, including encryption, role-based access control (RBAC) mechanisms, SSL/TLS support, and user authentication and authorization. Specifically, different users can be given different permission levels.
- **Replication, backups, and high availability:** They both come equipped with built-in features for data replication, backups, and access control, ensuring high availability and fault tolerance.

## MariaDB vs MySQL: Key Differences
The two database technologies are very similar, but some features and characteristics set them apart. Diving into their distinctive aspects is critical to choosing the right database for your specific requirements.

The MariaDB vs MySQL comparison boils down to seven main aspects. Let's see them all!

1. Storage Engines
MariaDB includes more storage engines compared to MySQL. These include:

- **[Aria](https://mariadb.com/docs/server/storage-engines/aria/):** A non-transactional engine for read-heavy scenarios.
- **[ColumnStore](https://mariadb.com/docs/server/storage-engines/columnstore/):** A columnar engine for analytics.
- **[InnoDB](https://en.wikipedia.org/wiki/InnoDB):** A general-purpose engine for mixed reads and writes also available in MySQL.
- **[MyISAM](https://mariadb.com/docs/server/storage-engines/myisam/):** A non-transactional engine designed for high throughput read workloads also supported by MySQL.
- **[MyRocks](https://mariadb.com/docs/server/storage-engines/myrocks/):** An ACID-compliant, transactional engine for write-heavy workloads.
- **[S3](https://mariadb.com/docs/server/storage-engines/s3/):** An S3-compatible storage engine for read-only, cloud operations.
- **[Spider](https://mariadb.com/docs/server/storage-engines/spider/):** An engine for MariaDB Enterprise Server that supports table federation, table sharding, and ODBC data sources.

2. Analytics Capabilities
MariaDB offers a dedicated analytics solution called [ColumnStore](https://mariadb.com/resources/blog/getting-to-know-mariadb-columnstore/), designed for efficiently processing and analyzing large datasets. In contrast, MySQL lacks an equivalent built-in analytics solution. This makes MariaDB a more complete solution when it comes to dealing with data analytical workloads.

3. Thread Pooling
MariaDB Community Edition comes with a thread pool that can efficiently handle over 200,000 connections, supporting scalable applications that rely on heavy concurrent usage. On the contrary, MySQL only offers a thread pool plugin in its enterprise version. This provides a limited concurrency capacity because it cannot handle as many connections as MariaDB's.

4. Community Governance
MariaDB's community governance involves collaboration between the MariaDB Foundation and MariaDB Corporation, fostering open discussions between contributors. This inclusive approach involves listening to a wide range of opinions from the community. In contrast, MySQL is primarily controlled by Oracle, which might influence decision-making and development directions.

5. JSON Data Handling
Both RDBMSs support JSON data handling, but the way they store JSON data behind the scene is pretty different. MariaDB stores JSON reports as strings, while MySQL uses binary objects. Moreover, MariaDB offers JSON functions such as `JSON_QUERY()` and `JSON_EXISTS()` that are not available in MySQL.

6. High Availability
MySQL provides various high-availability options, including [MySQL Cluster](https://www.mysql.com/products/cluster/) and [group replication](https://dev.mysql.com/blog-archive/mysql-group-replication-a-quick-start-guide/), ensuring data redundancy and fault tolerance. On the other hand, MariaDB supports high availability through [Galera Cluster](https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/). That is a robust solution but not as complete and feature-rich as MySQL's. 

7. User Authentication and Encryption
MySQL comes with a `validate_password` component to enhance account password security, while MariaDB lacks it by default. It offers three password validation plugins that are part of the shared library distributed with MariaDB, but you must manually enable them. These include the `ed25519` authentication plugin for secure authentication and password storage. When it comes to data encryption, both databases support data-at-rest and in-transit encryption, with some variations in their supported cryptography algorithms.

## Which to Choose Between MariaDB and MySQL
Now that you know the differences between the two RDBMSs, you are ready to see what to take into account when choosing the right database for you.

### License Considerations
MariaDB and MySQL are available with the GPL license. The main difference is that MariaDB is fully under the GPL, while MySQL is also available for private use. The latter option unlocks additional features, including improved thread pooling to speed up queries. If you want to distribute your MySQL fork without making the source code public under the GPL license, you may prefer the private edition of MySQL Enterprise. 

### Application Use Case
MariaDB offers advanced engines to handle NoSQL scenarios. It also excels at handling big data with high query speed, making it suitable for modern applications with complex data needs. Instead, MySQL is slower and anchored in the past, representing an ideal situation for enterprise companies relying on legacy systems.

### Speed and Performance
Thanks to optimal scalability options and several optimization techniques, such as efficient indexing, advanced query optimization, and fast data processing, MariaDB delivers better performance than MySQL in most scenarios. In detail, benchmarks proved that [MariaDB significantly outperforms MySQL](https://mariadb.com/resources/blog/benchmark-mariadb-vs-mysql-on-commodity-cloud-hardware/) in terms of query performance, making it a strong choice for performance-critical workloads.

```
|                                     	| MariaDB                                                                       	| MySQL                                         	|
|-------------------------------------	|-------------------------------------------------------------------------------	|-----------------------------------------------	|
| Pronunciation                       	| muh-ree-uh-dee-bee(IPA: /mɚɹˈiːədˌiːbˈiː/)                                    	| my·ess·queue·ell (IPA: /maiskjuːl/)           	|
| Type of DBMS                        	| RDBMS                                                                         	| RDBMS                                         	|
| First release                       	| 2009                                                                          	| 1995                                          	|
| License                             	| Open source with GPLv2 license                                                	| Open source with GPLv2 license or proprietary 	|
| Repository                          	| MariaDB on GitHub                                                             	| MySQL on GitHub                               	|
| Implementation programming language 	| C/C++                                                                         	| C/C++                                         	|
| Built-in client                     	| MariaDB Client, a CLI client                                                  	| MySQL Workbench, a GUI client                 	|
| Main focus                          	| High performance                                                              	| Simplicity of use                             	|
| Storage engines                     	| Aria, ColumnStore, MyRocks, S3, Spider, InnoDB, MyISAM, MEMORY, CSV, and more 	| InnoDB, MyISAM, MEMORY, CSV, and more         	|
| ACID                                	| Yes on specific storage engines                                               	| Yes on InnoDB, not fully otherwise            	|
| Connection pool                     	| More than 200,000 connections                                                 	| Up to 200,000 connections                     	|
| Analytics Storage Engine            	| MariaDB ColumnStore                                                           	| Not supported by default                      	|
| JSON storing                        	| String                                                                        	| Binary data                                   	|
| Big companies using it              	| DBS Bank, Google, Mozilla                                                     	| Facebook, Airbnb, Uber, Netflix, Dropbox.     	|
```

## Conclusion
In this comprehensive comparison guide, we delved into MySQL and MariaDB, two of the most appreciated relational databases on the market. While these systems share similar capabilities, they do have distinct characteristics. Here, you had the chance to explore these differences and determine which one aligns best with your requirements.

No matter which solution you opt for, adopting a versatile tool to connect to various databases is essential. Dealing with built-in clients is not practical because it forces you to install a lot of different database-specific tools on your machine. That's where [DbVisualizer]( https://www.dbvis.com/eval/) comes to the rescue!

<br />
![The connection to the MariaDB and MySQL servers.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ycfqayln5tmc1p6hao4j.png)
<figure><figcaption>DbVisualizer in action. Note the connection to the MariaDB and MySQL servers.</figcaption></figure>
<br />

As a full-featured general-purpose database client with [top user reviews](https://www.dbvis.com/toprated/), DbVisualizer enables you to explore data from dozens of DBMSs within the same software. It offers advanced query optimization features, table exploration in a graph, and full support for most database-specific features, including MariaDB’s and MySQL’s. [Download DbVisualizer for free now!](https://www.dbvis.com/download/)

## FAQ

### Is it possible to switch from MySQL to MariaDB?
Yes, migrating from MySQL to MariaDB is straightforward, as MariaDB is designed to maintain backward compatibility with MySQL. Thus, scripts and queries written for MySQL should work without significant modifications. 

### Which between MariaDB and MySQL is the most popular? 
MariaDB is growing in popularity but MySQL is still way more popular:

![MySQL is more popular than MariaDB.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w477d97s053j1hobl6qz.png)
<figure><figcaption>According to Google Trends, MySQL is more popular than MariaDB.</figcaption></figure>
<br />

According to [6Sense](https://6sense.com/tech/relational-databases/sap-sybase-market-share), MySQL has a 42.79% market share while MariaDB only has a 2.14%. At the same time, note that MySQL lost user interest for years before resurging in 2022.

### Which would win a MySQL vs MariaDB performance comparison?
In a MySQL vs MariaDB performance comparison, the results can vary based on specific use cases and configurations. However, recent benchmarks show that MariaDB often outperforms MySQL in query performance and replication tasks.

### What is the difference between MySQL Cluster vs MariaDB Galera?
MySQL Cluster and MariaDB Galera are both high-availability solutions but have different implementations. MySQL Cluster relies on the NDB storage engine for synchronous multi-master replication, while MariaDB Galera relies on Galera Cluster technology.

### Which one between MySQL and MariaDB gets more releases?
On average, [MySQL](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/) gets a minor release every 3 months and a major release every 6/7 years. Similarly, [MariaDB](https://mariadb.org/mariadb/all-releases/) receives a minor release per month and a major release every 4/5 years.


## About the author

Antonello Zanini is a software engineer, and often refers to himself as a technology bishop. His mission is to spread knowledge through writing.