What is the difference between MySQL and MariaDB query optimizers?

You are viewing an old version of this article. View the current version here.

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.

optimizer-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:

optimizer-areas-mariadb-55

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:

optimizer-areas-mysql-56

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:

optimizer-areas-mariadb10

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*

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.