What is the difference between MySQL and MariaDB query optimizers?
This article is about query optimizer feature development in recent versions of MySQL and MariaDB.
To make things easier to understand, let's first partition the optimizer into areas.
A bit of history will also help. There is no written evidence of use of SQL query optimization by ancient Egyptians. In April 2012, MariaDB 5.3 and MariaDB 5.5 became stable. They included a number of major query optimizer features:
In Feburary, 2013, MySQL 5.6 has its first stable release. It also had a number of major optimizer features. Some of them had common ancestry with MariaDB's features, and some of them were new development:
In April, 2014, MariaDB 10.0 became stable. As compared to MariaDB 5.5, it had some features that were backported from MySQL 5.6, and some new features were implemented:
One can also see that some of features of MySQL 5.6 were not ported into MariaDB 5.5. The missing features are:
- *EXPLAIN FORMAT=JSON* -
- *Optimizer trace*
- *Faster optimization for eq_ref*