Congratulations to Monty Program and the many community contributors for releasing the GA version of MariaDB 5.3. We were in our annual all-staff meeting last week, so we are a little slow to blog about this and acknowledge the great work that has gone into MariaDB. Better late than never, I hope.
Before I discuss some of the improvements in MariaDB 5.3, let me mention a few things briefly. First, Peter and Ovais are doing a lot of benchmarking of specific MariaDB 5.3 and MySQL 5.6 optimizer improvements, and both of them look very good indeed. Peter will present the results in an “optimizer standoff” talk at the upcoming MySQL conference, and Timour and Sergei from Monty Program will present a tutorial on a similar topic. Make sure you don’t miss this conference! Secondly, remember that our support contracts cover MariaDB as a first-class member of the MySQL family of databases. Finally, High Performance MySQL, Third Edition mentions MariaDB in many places, so you can learn more about where its features might be helpful to you.
So what’s new and great in MariaDB as compared to MySQL? A lot of things. Here are some of the highlights:
- Pluggable authentication so you can integrate MariaDB with external auth systems
- Dynamic columns and virtual columns (they’re different) offer flexibility in schemas
- Microsecond time resolution for DATETIME and similar time-based types, as well as microseconds in SHOW PROCESSLIST
- Group commit for the binary log makes the server much faster with the binary log enabled
- Faster queries through speedier joins, faster subqueries, and elimination of useless tables in joins
- Thread pooling and a segmented key cache for improved scalability
That’s really just a sampling. A good starting point for learning more is the MySQL versus MariaDB wiki page. Note that a lot of these features are also available either in Percona Server or in the upcoming MySQL 5.6 in the same or slightly different forms, so there is some subtlety to this list. For example, Percona Server has the same group commit fix, and MySQL 5.6 offers microsecond timestamp support, as well as a lot of optimizer improvements. Even the standard MySQL 5.5 offers pluggable authentication; you just have to pay for the plugin if you want the official Oracle one; or you can use Percona’s PAM plugin.
MariaDB 5.3 isn’t the only exciting thing, however. MariaDB 5.3 is based on MySQL 5.1, but MariaDB 5.5 will be based on MySQL 5.5, so it will inherit a lot of the great improvements Oracle has made to the MySQL 5.5 release. This should help MariaDB be faster and more scalable, as well as adding a lot of nice features like less lock contention, better diagnostics, improvements to partitioning, and the addition of multiple InnoDB buffer pools. Best of all, MariaDB 5.5 might be here pretty soon — I caught this mention on the MariaDB IRC channel:
There are strong forces to ensure 5.5 GA before percona live in Santa Clare
This is great news indeed.
MariaDB really has come a long way. I remember that a couple years back I told Monty, “fix subqueries and you will change the world for a lot of MySQL users.” Well, that dream has come true, and now we have subqueries that execute inside-out, as a sane user expects them to do.
The new MariaDB release is a great development for MySQL users. Users now have more choice than ever — there are three great versions of MySQL that suit different needs and personalities, with different characteristics, and feature and performance improvements are moving rapidly forward for the MySQL world as a whole.