MySQL versions can make for interesting, yet at times confusing reading. In this article I will explore MySQL versions and shed light on them for anyone who uses or has worked with MySQL or LAMP environments.
First, let’s take a look at the version soup.
- Version 5.2 was re-branded as version 6.0.
- Version 6.0 was then canceled.
- Version 5.4 then replaced version 6.0.
- Version 5.4 was then re-branded as version 5.5.
- MySQL NDB cluster comes with its own version system. As of this writing 7.2 is the latest release.
- Innodb, the most used engine in MySQL now has its own version. MySQL 5.0 had a pre-InnoDB version 1.0, 5.1 has the default builtin and improved plugin version 1.0.xx, and the current General AvailabilityMySQL 5.5 has innodb version 1.1.xx.
- MySQL 5.6 will be the next release from MySQL(Oracle). For a full feature list see http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html
Forks And Patches
Adding more confusion to the various versions is the number of forks and patches.
- Drizzle was a fork of MySQL 6.0. Drizzle is probably the only true fork – it has fully re-factored code and is in active development.
- MariaDB is a release driven by Michael “Monty” Widenius, the original author of MySQL. MySQL 5.1 was the basis for MariaDB and as of this writing the latest version is MariaDB 5.5.
- Percona has several patches for both MySQL 5.1 and MySQL 5.5. Percona patches are a re-base of the main release and XtraDB is a re-base of InnoDB. Both Percona Server and XtraDB are also not true forks of MySQL or Innodb. However, they have some very good performance and monitoring enhancements.
- Facebook and Google also release patches for MySQL. These are done for specific company requirements, but as is often the case some of these Facebook, Google and Percona features eventually find their way into main releases. Information on Facebook’s MySQL patches can be found at https://www.facebook.com/MySQLatFacebook
Third Party Storage Engines
Outside of InnoDB and MyISAM, there are few third party plugins that suit specific needs as well.
- TokuDB – A transactional engine, which is available as a plugin, provides some improvements for large databases or write-heavy environments. More information is available at http://www.tokutek.com/products/tokudb-for-mysql/
- PBXT – A transactional engine like InnoDB and fully ACID compliant. PBXT has not had much maintenance in the past two years and so is close to being defunct.
- InfiniDB – An open source engine by Calpont, InfiniDB is suited for data warehousing and read-intensive applications. More information is available at http://infinidb.org/about-us/infinidb
- Infobright – The Infobright engine for MySQL is another one aimed at data warehousing and large datasets. Read more at http://www.infobright.com/Products/MySQL-Integration/
Selecting The Right One
- For most part, staying with the Oracle releases will suit most application needs. These releases are in active development, are generally stable and have binary versions for most systems.
- MariaDB is binary compatible with MySQL and may suit certain needs. It also includes XtraDB from Percona. For a good comparison and the various incompatibilities, refer to http://kb.askmonty.org/en/mariadb-versus-mysql/
- Going with a fork like Drizzle will likely require some application change. Drizzle does not maintain server level compatibility but does talk the MySQL protocol. For a full list of differences refer to http://docs.drizzle.org/mysql_differences.html
- The Percona patches and versions provide a more seamless migration as they are generally fully compatible with the MySQL releases. If you are concerned about vendor support, Percona also provides that. Percona toolkit (formerly MaatKit) is a good addition and provides some nice tools to automate a variety of tasks. This toolkit can be used with any MySQL release and so you don’t need to run Percona server.
- The third party engines come into a play only if are looking for specific features that come with the engines.
Links And Further Reading
- MySQL 5.6 features – http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html
- MariaDB information – http://kb.askmonty.org/en/mariadb/
- OurDelta homepage – http://ourdelta.org/
- Drizzle differences – http://docs.drizzle.org/mysql_differences.html
- Percona server – http://www.percona.com/software/percona-server/