Now that MySQL has decided to ready the final Release Candidate (RC) for version 5.1 instead of moving forward with a General Availability (GA) release and Michael Widenius has extended an bug filing call to its user community. I've been thinking about where MySQL stands as an official 5.1 release has been pushed back. For all it's dominance as the glue for LAMP stacks and engine for Web 2.0 infrastructure, my thoughts on MySQL have little to do with Sun's $1B acquisition or whether it can topple Oracle DB. Rather, they're focused on core realities associated with the product itself. Namely:
- For those who remember, MySQL 4 left a bad taste in the mouth of more than a few. Not that anyone expected it to be perfect but the lack of so called "advanced" features like triggers, sprocs, udf's were a turnoff. To this day there is a healthy segment of PostgreSQL users that swear MySQL is an amoeba in comparison, and most base this assertion on having used MySQL 4...seriously. A lot of this is understandable, version 4 lacked support for things like nested SELECT's so it's to be expected that some folks' experience was less than ideal. Unfortunately, those who fled MySQL before the 5.0 was available missed out on some notable additions, including syntax changes that moved it closer to ANSI standards.
- The 5.1 GA will be the first widely available release with native XML functions. I'm waiting to see if there's any indexing support behind all the xPath.
- MySQL has consistently trumped PostgreSQL with it's ease of install, maintenance, and lower levels of complexity. Still, MySQL lacks what some would call the basic ability to store a timestamps with greater than a second accuracy. In the operational world a database that can't do that would be considered a step away from Access. At least milliseconds are required and microseconds are preferred. Note: MySQL currently recommends stripping the sub-second information from the time sent, storing it in another column, then implementing a view which combines them back. However, for functionality that classed as basic this comes across as overkill...especially when the database's calling card is simplicity.
- Apparently, before being bought by Sun, MySQL AB were already contemplating making the move to more proprietary tools. From what I've been told, it was agreed that this was a natural progression that would enable them to monetize pieces of the pie. Talks were set in motion and the decision was left on the table...then Sun purchased them. After the acquisition, Sun didn't see the need to/benefit in proceeding down that path in the near term but took heat as some fingered them as the original source of the idea.
At the end of the day, the delay of version 5.1 GA will afford us with a look at what the priorities for Sun's adopted open source child are at this point. The state in which 5.1 hits the ground running will reflect how Sun intends to position MySQL moving forward. My hunch is that we'll witness longer gaps between releases as more focus is paid to QA, testing, certification and feature stability than in the past.