Thursday, February 5, 2009

My take on MySQL 5.1

So being that I am a support engineer with Sun/MySQL, I figured I would chime in with my opinion of MySQL 5.1 GA so far since I have been using it for a while. For history, I have been with MySQL AB/Sun since the 4.0 release cycle. This post does not represent any official views of my employer, Sun Microsystems, and all such disclaimers.

First off, I want to say that Sun assisted greatly with MySQL 5.1. I think it is a much better release than it would have been with MySQL AB doing the release. I do think this will continue in the future from everything I have experienced and seen so far. Sun knows how to make solid software.

So do I think that 5.1 was released too early? Not at all from my experiences of the MySQL releases. 5.1 is fairing quite well, and I think everyone that has a reason to upgrade to it (such as less locking for InnoDB auto_increment, partitioning, dynamic logging, etc...) should certainly start the process of doing so.

MySQL 5.1 is in quite good shape compared to my experiences with MySQL 4.0 to 5.0. As a chart of my experiences:

ReleaseGA VersionMy first recommended version

These versions aren't based on exact bugs fixed, but based on interactions with many customers using the versions and various issues being experienced. It has a bit of gut feeling involved too, so it certainly is not a pure scientific method for determining this.

Also by no means is MySQL 5.1 perfect. There have been some pretty big bugs found and some annoying ones too. However, overall it has been working pretty well for most users.

I still do recommend you do test out all new functionality to ensure it works for you as there are many limitations. However, I would say that for any major software upgrade with any database system, this isn't specific to MySQL or the 5.1 release.

So go ahead and give 5.1 a try-out if you have been on the fence. Have a look around and kick the tires and be sure to report any bugs you find.


  1. I was following your thoughts up to the point where you compared with 5.0 quality. Early 5.0 was crap in terms of quality. So early 5.1 is "less crap" for a given definition of crap. That does little good, really.

    I prefer "not crap" or actually: develop everything in public, not internally; don't do preview releases, don't "unveil" things after internal design and initial implementation... many of us are happy to look at both ideas and code early on, and provide feedback. This makes for a better product, sooner.

    Unfortunately, MySQL has for years already developed internally, which then happens to be released under an OSS license. That's not an open source development model and has none of its benefits.

    Yes early code will always be part crap and that's fine, very happy to run it and report back! But when there's no such process and then something that is in some respects still crap gets a "GA" label, I just sigh.

  2. Arjen:

    My point was mostly that while 5.0 was crap, even comparing to 4.0 and 4.1, I consider 5.1 to be of higher quality (at least by GA tag vs. number of releases till I can recommend, this isn't the best metric really, but one I can easily do). There really was an enormous amount of work addressing the largest issues with 5.1 prior to release.

    As for being open, I agree that we need to be more open. As you said this isn't a new thing by any means, and stretches back to when I joined and even before that. We have seen some progress towards this (opening of most worklogs to public, switching to bzr, etc...), and I certainly hope it continues.

    I think with Monty leaving and a lot of external development going on, there will be more emphasis on this going forward.