Sunday, July 6, 2014

The MySQL 6.0 goodybag

After MySQL 5.1 was released work started on MySQL 5.2, but then this was renamed to MySQL 6.0. There were many new features introduced in 6.0. But then stabilizing this branch became as huge task. Eventually the decision was made to start of with a stable branch and backport the new features from 6.0. This is how many of the 6.0 features landed in 5.5 and 5.6.

So let's see which features 6.0 brought and were they landed. I'll use the What Is New in MySQL 6.0 section of the MySQL 6.0 Reference Manual for this.

  • The Falcon storage engine. This never landed anywhere as far as I know. It's not even included in the list of storage engines in the MariaDB knowledgbase. As both InnoDB and MySQL are now part of Oracle I don't see any reason for Falcon to exist anymore.
  • 4-byte utf8 and support for utf16 and utf32. This is included in MySQL 5.5 together with many other Unicode enhancements.
  • Database backup with SQL. This allows you to make backups by executing 'BACKUP DATABASE' SQL statements. This is has not landed anywhere as far as I know, but some of the code might have made it into MySQL Enterprise Backup (both use  backup_history and backup_progress tables in the mysql database). This might be an interesting thing to have, but with MEB there is not a real need for it.
  • Subquery enhancements, BKA and MRR. This all made it into MySQL 5.6.
  • LOAD XML. This made it into MySQL 5.5, but I don't think it is used often.
  • The Maria storage engine. This is a transactional MyISAM storage egine. This is not used in Oracle MySQL. It is included in MariaDB, but renamed to Aria as it might otherwise cause confusion. As far as I known there is not much development being done on Aria.
  • Foreign Keys. Of course MySQL supports foreign keys (now even with NDB!), but those are implemented in the storage engine, not in the server. This was on the roadmap for 6.x but I don't know if it was actually implemented. Implementing this in the server could make writing storage engines easier and would probably also make it easier to combine partitioning and foreign keys.


Did I forget any 6.x features? Did you ever try 6.x? Let me know in the comments!

 

Some comments from Federico Razzoli on this:

- In 2024, it would be safe to say that Aria will never be transactional. With TRANSACTIONAL=1 the flushed rows can't be lost, but it's also slow. It's used for Maria internal temporary table because it's faster for GROUP BY... but with some remarkable exceptions.
- I seem to recall that the BACKUP SQL statement was implemented, and then removed because it proved unsafe.


1 comment:

  1. While the Maria storage engine did promise "transactional MyISAM" was coming soon when it was released back in 2008, that's never materialized (AFAIK). There's good reason for confusion, of course, given that Maria (now Aria) added a "TRANSACTIONAL" modifier - but redefined it to mean "crash safe":

    http://monty-says.blogspot.com/2008/01/maria-engine-is-released.html

    ReplyDelete