February 13, 2013

MySQL 5.6 vs. MariaDB 10.0

A high-level comparative overview of the features

With the recent GA release of MySQL 5.6, there have been a lot of questions about where MariaDB stands with regards to MySQL 5.6.  SkySQL will of course support both as Patrik explained in his recent blog post, but there are many questions about the technical differences. Rasmus from Monty Program gave a detailed view on MariaDB 10.0 here but I thought it would be beneficial to share a comparison table of the two. MariaDB recently released a benchmark including various versions of both MariaDB and MySQL (as did DmitriK from Oracle), but this post will focus solely on features (not performance). This comparison table is a high level overview with no intention to cover every single feature, only the ones deemed most significant.

I have intentionally left out the threadpool and other features that only exist as closed source features of MySQL, even though they are available in MariaDB as open source features. I have also only selected some of the optimizer features for this list, for a more comprehensive comparison look here.

Some of the MySQL 5.6 features that are not yet in MariaDB are scheduled to go into MariaDB 10.0.2 (the next release of MariaDB 10.0). They are included here in this table and marked as missing in the MariaDB 10.0 column, but with a footnote that they will be in MariaDB 10.0.2 The most notable of these features is the Global Transaction ID (a discussion on the MariaDB implementation can be found in Kristian Nielsen’s blog here and here). There are also other features where the internal implementations differ. I haven’t taken a particular stance on that, but other benchmarks and blogs show any differences.

As always, comments are very welcome. Here is the grid:

  MySQL 5.5 MariaDB 5.5 MySQL 5.6 MariaDB 10.0
Multi-source Replication

NoSQL Cassandra Storage Engine

NoSQL Handlersocket interface

NoSQL memcache interface

Dynamic Columns

Virtual Columns

Join Optimizations

Engine Independent Statistics

SHOW EXPLAIN of a running thread

Explain Improvements

1)

Global Transaction ID

2)

Online Alter Table

2)

Parallel Slave Threads

Partitioning Improvements

InnoDB Improvements

3)

Performance Schema Improvements

>Optimizer Enhancements

Binlog Group Commit

Disk Access Optimizations

Subquery Optimizations

Microseconds Precision

  1. All improvements, except JSON output will be available in MariaDB 10.0.2
  2. Will be available in MariaDB 10.0.2
  3. All improvements, except FULLTEXT indexes are already available. FULLTEXT indexes will be available in MariaDB 10.0.2

Max is the creator of the original MySQL training program at MySQL AB. He is a co-founder of SkySQL and now manages the training department with the aim to help advance the MySQL ecosystem around the world.

Join the conversation LinkedIn

About Max Mether

As a co-founder Max now manages the field services and training departments at MariaDB and helps advance the MariaDB and MySQL eco-systems around the world. Max is a frequent speaker at LinuxCon, meetups and other conferences around the globe.

Read all posts by Max Mether