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
Twitter: @skysql / Facebook / LinkedIn


















Comments
+1 on GA vs. Alpha
This is just silly. Unless SkySQL is truly recommending it to their customers for production use, then by all means go ahead but I would expect SkySQL to stand by it good or bad?
Is silly to confuse
Is silly to confuse recommendations with a features roadmap. This is showing just the roadmap of development of the 2 products. If you have any details of the MySQL 5.7, would be great to add them.
In addiction, this is also showing the great work has been done in the MySQL 5.6 release.
ps: SkySQL is agnostic, since we sell support on both.
Silliness?
Again, the blog post does not make any recommendations at all, it just compares feature lists. It is doing it because customers have asked about it.
What about crash safe tables?
In MySQL 5.6, there are new tables where the status of replication is stored.
While I have seen these tables in MariaDb 10.0, I could not find any way of enabling them. Is this feature supported? If not, does MariaDb plan to offer a similar functionality?
good point Giuseppe. I think
good point Giuseppe. I think we must check with MariaDB team.
How can you compare an alpha version to a GA release?
As far as I can tell, MariaDB 10.0 is still aplha, so much alpha that the multi-source replication is not feature complete (try listing relay-log events with multi-source enabled).
So, what's the purpose of comparing it to more mature releases?
Surely you are not recommending that anyone uses MariaDB 10 in production.
Technically speaking it exist
Technically speaking it exist less risk using MariaDB 10 against 5.6 where most of the code has been already been tested inside MariaDB 5.2 and 5.3 and 5.5 and InnoDB is the same :) This only reflect my opinion and not an official SkySQL representative
Recommendations?
I am not recommending anything, the blog was was purely about generic feature list comparisons. I purposfully left out all discussions about the maturity or performance of the features, someone else can tackle that. We have been asked for such a comparison from our customers so I thought it made sense.
Why is there an X for "Join
Why is there an X for "Join optimizations" in MySQL 5.6?
It sure does contain optimizations in that area:
http://oysteing.blogspot.de/2011/10/bacthed-key-access-speeds-up-disk-bo...
http://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.htmlhttp://oystein...
Any reason why you only linked to the MariaDB benchmarks, but not to the ones from DmitriK?
Join Optimizations
They "Join Optimizations" row was based on the comparison table found here: /https://kb.askmonty.org/en/optimizer-feature-comparison-matrix/
I believe this is put together by Timour.
Regarding Dmitri's benchmark I didn't see his benchmark on MariaDB until after I had published the blog, so I just added it in the parenthesis.