MariaDB is a relational database. It is a fork – that means it is a successor version of MySQL developed by community. This branch was created primarily to maintain the GNU GPL free open source software licence. The initiative which stood behind the creation of this branch came from original MySQL developers. They feared for a future heading of this software after it had been bought by Oracle. Contributors involved in the development have to share their copyright with MariaDB Foundation.
MariaDB’s chief developer is Michael “Monty” Widenius. He was the original founder of MySQL and Monty Program AB. It sold its MySQL AB to Sun Microsystems for one billion dollars. Fork is named after his younger daughter. MariaDB is written in C, C++, Bash and Perl.
Many well-known companies, including Service Now, DBS Bank, Google, Mozilla or Wikimedia Foundation have chosen MariaDB for their purposes.
MariaDB API and protocols are designed to be compatible with those used by MySQL. At the same time, selected features supporting native operations are added. All connectors, libraries and applications cooperating with MySQL should also work for MariaDB.
Regarding the fact, that MariaDB is MySQL fork, database structure and indexes match MySQL. This allows switching between MySQL and MariaDB without a need to change applications because there is no need to change data and their structures.
This means that:
Data and tables-defining files are compatible.
Client protocols, structures and API are identical.
MySQL connectors will work for MariaDB without any modifications.
Even command line tools are similar.
In December 2012, Michael Widenius, David Axmark and Allan Larsson announced the creation of a foundation that would supervise MariaDB development.
The advantages of using MariaDB instead of MySQL
Engine support. MariaDB supports significantly more engines such as SphinxSE, Aria, FederatedX, TokuDB, Spider or ScaleDB.
Continuous development. MariaDB is being developed more continuously than MySQL. This is partly due to the fact that it is an open source. Updates are transmitted to end-users much faster than in the case of MySQL, new functionalities are more sophisticated and faster.
Faster and more transparent security releases. Oracle releases safety releases for its products every three months. MySQL has a new release every two months. This leads, in some cases, to the fact that security updates and security information are not synchronized.
Multi-master replication. MariaDB offers cluster databases for commercial use that allow multi-master replication. Anyone can use it freely and does not require dependence on the MySQL Enterprise system.
Performance. MariaDB has optimized performance and is much stronger in processing large volumes of data sets.
Migration. MariaDB allows elegant migration from other database systems.
The disadvantages of using MariaDB instead of MySQL
Impossibility of retrospective migration. Migration from MariaDB back to MySQL is impossible from release 5.5.36.
Dependence and new releases. New releases don’t contain necessary libraries for Debian in time which leads to the need of upgrading to a newer version due to dependencies.
MariaDB cluster version. Even using three nods, more problems occur in the cluster version. SQL errors are more common, there are configuration problems and many tools for solving these problems aren’t available for MariaDB. The documentation regarding this issue is a bit brief, so user has to solve the problem on the basis of his experience, estimation and logical deduction.