Join Sheeri Cabral for an in-depth discussion in this video How MariaDB is different than MySQL, part of Advanced Topics in MySQL and MariaDB.
- MariaDB is a fork of MySQL created by one of the original founders of MySQL. The first version of MariaDB to come out was 5.1, and it was based on MySQL 5.1. At first there were only a few changes. For example, MariaDB came with more storage engines. The XtraDB, PBXT, and FederatedX storage engines were available as add-ons to MySQL, but MariaDB shipped these storage engines with the regular database server.
The biggest change was the implementation of the Aria storage engine. The Aria storage engine was developed to be a better MyISAM storage engine and eventually replace it. It is crash-safe and currently non-transactional. Right now, system tables in MariaDB still use the MyISAM storage engine. However, there are information schema tables in MariaDB that use the Aria storage engine. Aria is used for internal temporary tables which use MyISAM and MySQL.
Aria is faster for these internal temporary tables, so even early on in MariaDB 5.1 a performance difference could be noticed. There were two other features added in MariaDB 5.1 which I will talk about in more detail a little later. They are server thread pooling, which makes the database system more scalable, and microsecond precision in the PROCESSLIST. MySQL skipped right from version 5.1 to 5.5. MariaDB, however, decided to add more major features.
Instead of having the major features added to MariaDB 5.1, they created a MariaDB 5.2 release. They did the same for MariaDB 5.3, adding features that are not in MariaDB 5.2. MariaDB 5.2 is still based on MySQL 5.1, and contains all of the features of MariaDB 5.1. In addition, they packaged the Open Query Graph storage engine and the Sphinx storage engine for better full-text searches.
Like the Federated, PBXT, and XtraDB storage engines, the OQGraph and Sphinx storage engines can be added on to standard MySQL but are packaged alongside MariaDB. There are other major features in MariaDB 5.2 that I will discuss later, including virtual columns, user statistics, and the authentication plugin. MariaDB 5.3 has everything in MariaDB 5.2, which means it is also based on MySQL 5.1.
The major features in MariaDB 5.3 include several optimizations, subquery optimizations and join optimizations. In this course, I will be going over the progress reports in PROCESSLIST and microsecond precision in time data types. I will also explain the HandlerSocket plugin, which is a plugin that works on both MySQL and MariaDB. MariaDB 5.3 also adds geographic information systems features, or GIS features.
Another feature MariaDB added in 5.3 is dynamic columns. For more information about dynamic columns, see the course called Understanding MariaDB for MySQL Users here on Lynda.com. MariaDB 5.5 is based on MariaDB 5.3 but adds in many of the MySQL 5.5 features. Most of the major features were optimizations that I will not explain. But we are now seeing a problem with the version numbering. Not all the MySQL 5.5 features are being put into MariaDB 5.5, and there are extra features from the previous MariaDB releases.
Calling it 5.5 is confusing because naturally we would think it has all the features of MySQL 5.5, but it does not. So for the next version, MariaDB decided to change the numbering altogether, so there would not be any confusion. Newer versions of MariaDB are numbered starting with 10. MariaDB version 10.0 has all of the features of MariaDB version 5.5 but adds in some of the MySQL 5.6 features.
MariaDB 10 adds in many major features that I will talk about in this course, including global transaction IDs and multisource replication. Other major MariaDB 10 features include the Cassandra storage engine and the CONNECT storage engine, which, along with dynamic columns, are discussed in the course Understanding MariaDB for MySQL Users. I've explained the history of MySQL and MariaDB, and given a brief overview of the differences in MariaDB, including the version number schema.
Want more information about MariaDB? Check out Understanding MariaDB for MySQL Users.
- Comparing MariaDB and MySQL
- Creating and using virtual columns in MariaDB
- Building Sphinx tables
- Installing HandlerSocket
- Setting up GTIDs in MariaDB and MySQL
- Audit logging in MariaDB and MySQL
- Using GIS in MariaDB and MySQL