Long-awaited MySQL 5.0 makes its debut

27.12.2005
MySQL 5.0 has finally been released to much anticipation from the open source community. The new version includes some important enhancements that make an upgrade mandatory for 4.1 users, including improved security and stored procedures. All in all, MySQL 5.0 is a respectable open source database, but it's still a few steps below the "big four" databases (IBM DB2, Microsoft SQL Server, Oracle, and Sybase) when it comes to management and development tools.

Upgrades All Aroun dThere are four major new features in MySQL 5.0: stored procedures, views, security upgrades, and triggers.

Stored procedures are a database standard that MySQL is only now taking advantage of, and it's a good move. Stored procedures allow you to define pre-compiled SQL code that is stored inside the database and can be called with parameters by anyone with permissions; they can be long and contain very complex logic.

Interestingly, the stored procedure implementation in MySQL 5.0 is different from that of other databases: MySQL's stored procedures aren't precompiled; they're just stored in the database, making them closer to named queries in Excel than traditional stored procedures.

Because of this lack of precompiling, the performance benefits you see from stored procedures in MySQL come from reduced network traffic. The stored procedures were generally stable in my tests, but this being MySQL's first implementation, there were a few bugs. For example, I had some trouble with the server freezing up when I tried to open some of my larger procedures. Although not a show-stopper, this behavior could be a problem if you have a busy database.

Another database standard, views, are also new to MySQL 5.0. A view is a stored query that doesn't accept parameters, and one of its biggest benefits is obscuring query logic from users. An admin could define a view with a very complicated where clause and multiple joins, but the end user would simply select the query from the entire view without needing any knowledge of the underlying tables. MySQL's implementation of views is fairly complete, and, in this case, the functionality is similar to any other database.