There is more than one database option available for developers. MySQL is one of the most widely used databases across the world, but it is by no means the only one. Developed in C/C++, MySQL is free and open-source, and as such has made great headway
However, during the acquisition of Sun Microsystems by Oracle, some of the senior engineers who were working on the development of MySQL felt that there was a conflict of interest between MySQL and Oracle’s commercial database - Oracle Database Server.
As a result, these engineers created a fork of the MySQL code base and started their own organization. This is how MariaDB was born.
Today, both databases are very popular and are used extensively by the developer community. MySQL is ranked second among the relational databases and second overall (Oracle database being first). MariaDB is behind - ninth among the relational databases and fourteenth overall.
In this article, we'll look at the similarities and differences in this MariaDB vs MySQL head-to-head comparison.
Differences Between MariaDB and MySQL
|Comparatively slower performance
|Technically open source, but largely managed by Oracle
|Much larger connection pool
|Much smaller connection pool
|12 storage engines
|Much fewer storage engines
|Suitable for large-sized data
|Doesn’t work as well for large-sized data
|Supports data masking
|Does not support data masking
|Supports dynamic columns
|Does not support dynamic columns
What is MariaDB?
MariaDB is an open-source fork of the MySQL Relational Database Management System (RDBMS). Developers, including some of those that originally worked on MySQL, created the fork in 2009 following concerns over Oracle’s acquisition of MySQL. As a fork of MySQL, MariaDB is very compatible with the former.
It supports the same features that MySQL does, but with additional features as well, as we’ll see below. Some of the most significant features are new storage engines, JSON API support, and parallel data replication.
What is MySQL?
MySQL is an RDBMS that lets you store data in tables and manipulate them. It was first released in 1996 by Michael Widenius, who is now the lead developer of MariaDB.
MySQL is the most popular RDBMS in the world and is used by some of the biggest tech firms and platforms. This includes Facebook, YouTube, and Twitter.
A more concrete example of how popular MySQL is can be found in WordPress sites. The database system is what lets users store blog posts, and user and plugin information.
MariaDB vs MySQL
MariaDB has several optimizations that tend to improve the performance as compared to MySQL. In general, when it comes to MySQL vs MariaDB performance, the latter is clearly better, as we will see below.
There is a huge performance optimization with respect to database “views”. “Views” are essentially virtual database tables that can be queried like regular tables of the database.
In MySQL, when you query a view, all tables that are connected to the view are queried, irrespective of the fact that the query may not require some of them. This has been optimized in MariaDB where queries target only those tables that are required.
MariaDB provides yet another powerful performance improvement in the form of “ColumnStore” which is a distributed data architecture that allows the scaling of MariaDB greatly. It can scale linearly to store petabytes of data across various servers in a database cluster.
Better Performance in Flash Storage
MariaDB also provides a MyRocks storage engine that adds the RocksDB database to it. RocksDB is a database that has been designed for better performance in flash storage by providing a higher level of data compression.
Segmented Key Cache
MariaDB introduces another performance improvement in the form of Segmented Key Cache. In a typical cache, various threads compete to take a lock over the cached entry. These locks are called mutexes. When multiple threads are competing for a mutex, only one of them is able to get it while others have to wait for the lock to get freed before performing the operation. This leads to execution delays in these threads slowing down the database performance.
In the case of Segmented Key Cache, the thread need not lock the entire page, but it can lock only the particular segment to which the page belongs. This helps multiple threads to work in parallel thereby increasing the parallelism in the application leading to better performance of the database.
Another interesting feature of MariaDB is that it supports virtual columns. These columns are capable of performing the calculations at the database level. This is extremely useful when many applications are accessing the same column so there is no need to write the calculation in each application. This feature isn’t available in MySQL.
Parallel Execution of Queries
MariaDB v10.0 and above allows for parallel execution of several queries. The idea is that some queries from the master can be replicated in the slave and can therefore be executed in parallel. This parallelism in query execution certainly provides MariaDB an edge over MySQL.
MariaDB also introduces a new concept called “Thread Pooling”. Previously, when multiple connections to a database were needed, for each connection, a thread was opened leading to a “one thread per connection” based architecture.
With “Thread Pooling”, there are pools of open threads that a new connection can pick up and query the database. This way, a new thread need not be opened for every new connection request leading to faster query results. This feature is available in the enterprise edition of MySQL, but not in the community edition.
MariaDB provides several powerful storage engines out-of-the-box which are not available in MySQL. For example, XtraDB, Aria, etc. To set up these storage engines for MySQL, you need to install them manually which may not be the most convenient process.
MariaDB team is making sure that MariaDB can seamlessly replace MySQL in existing applications. In fact, for each version of MySQL, they release the same version number of MariaDB to indicate that MariaDB is generally compatible with the corresponding MySQL version. This opens up the possibility of switching to MariaDB seamlessly without any modifications in the application code-base.
Open Source vs Proprietary Database
MySQL is a large project and is managed by one of the largest organizations in the world — Oracle. This has its pros and cons. The upside is that this can mean better security, software stability, and a tailored customer support experience. However, one significant downside is that releasing new features in organizations that big takes a lot of time.
On the other hand, MariaDB is fully open-source and they are quite fast in accepting outside contributions and releasing it as new features and enhancements.
Should You Pick MariaDB or MySQL?
MariaDB is undoubtedly quite powerful and provides many features that are extremely useful and are not supported in MySQL. Such features make MariaDB a lucrative choice to be used as the primary backend database.
Generally speaking, organizations that have already purchased licenses for Oracle need not invest in MariaDB. However, for those who are starting afresh and want to decide on which database to use, undoubtedly MariaDB is a better choice.
As you can see, in the head to head comparison of MariaDB vs MySQL, there’s no irrefutable reason to choose one or the other. MariaDB is better for those who are starting new. Those that are already working with MySQL can stick to it and not worry too much about the performance loss.
What’s even better is that it is easy to transition to MariaDB from MySQL should you ever feel the need. There are advantages and disadvantages to both, so your decision should reflect your needs.
Frequently Asked Questions
1. Is MariaDB the Same as MySQL?
No, Maria is not the same as MySQL, though it is a fork of MySQL. There are several differences between MySQL and MariaDB, as described earlier. Which you use will depend on your needs.
2. Is MariaDB Better than MySQL?
No. Though MariaDB has more features than MySQL, there are pros and cons to both, and which you choose will depend on your requirements.
3. Is MariaDB Replacing MySQL?
No, MariaDB isn’t replacing MySQL. However, it is becoming more popular, offering some competition to MySQL.
4. What is MariaDB Used For?
MariaDB is a relational database management system (RDBMS) that is used for the same purposes that MySQL is used for, including data warehousing and e-commerce.
5. Is MariaDB Better for WordPress?
Benchmarks for MariaDB and MySQL show that MariaDB is much better when it comes to WordPress performance. Both can work for WordPress, but it’s clear that MariaDB has higher performance.
6. Can I Install MySQL and MariaDB on the Same Server?
Yes, you can install both MySQL and MariaDB on the same server. Here’s a guide on how to do it.
People are also reading: