MySQL can no longer be viewed as a limited, departmental database. With the release of version 5.0 in mid-November, the popular open-source database is a serious contender for enterprise-level use. Triggers, stored procedures, cursors, views and beefed-up transaction processing have shortened the list of missing ingredients needed for large-scale projects. A few rough spots might put off developers in demanding online transaction processing (OLTP) environments, but MySQL 5.0 offers a few innovations and cost advantages that will win more enterprise converts.
MySQL executives argue that the database stepped over the enterprise threshold long ago, pointing to large-scale, high-demand deployments among customers including Sabre Holdings and Cox Communications. Responding to the competitive threat, major database vendors are attacking MySQL in its open-source LAMP (Linux, Apache, MySQL, PHP) stronghold. IBM released Cloudscape/Derby, an alternative to MySQL, and both IBM and Oracle are working with Zend for PHP support.
The commercial vendors are also questioning MySQL's enterprise chops, citing the fact that triggers, views, cursors and stored procedures are going through second- and third-generation refinement in their databases while MySQL is just now introducing these features. Stored procedures, functions and especially triggers are critical for creating business rules and OLTP functionality. MySQL 5.0 improves on all these fronts, but the features fall short of complete. For example, MySQL 5.0 doesn't allow
LOAD TABLE or
CHECK TABLE commands. Furthermore, stored functions and triggers can't use certain
SELECT statements. These restrictions require workarounds in coding triggers and functions.
MySQL 5.0 has improved subqueries and cursors, which simplify database programming. MySQL subqueries still can't refer to the same table, however, and many aren't optimized for fastest-possible query time. MySQL's cursors aren't updatable, can't be named and can't be held after a commit as they can be in the big-three databases. In addition, cursors are tied to their PREPARE statement controls and aren't scrollable.
MySQL is developing workarounds and says it will eliminate the rough spots in upcoming updates, but shops relying on cursors or triggers in coding practices or OLTP may want to wait and see.
MySQL 5.0's addition of Information Schema tables brings it in step with one of (relational database pioneer) E.F. Codd's important rules: All data about the database must be stored in its own table structure. This addition puts MySQL in line for use by a wider range of modeling and application generation tools as it follows the SQL2003 metadata standard closely. And a few breakthroughs in MySQL 5.0 counterbalance the rough spots. For instance, MySQL innovates in the largely ignored area of basic table-container designs, offering InnoDB tables for fast OLTP and MyISAM for better searches and inserts. NDB clustering and Memory tables tap the huge physical memory spaces afforded by 64-bit servers. Archived and federated table types take advantage of specific processing requirements and improved database compression and encryption capabilities. In sum, MySQL is delivering conventional index optimizations but also pioneering some novel storage engine designs.
|[ FAST LANE ]|
Open source on the rise. In September, Massachusetts moved to standardize on the OpenDoc format (ODF) and phase out tools, such as Microsoft Office, that don't support the open-source format. October saw Google's alliance with Sun, with an endorsement of Sun's ODF-supporting StarOffice 8 (and possible distribution?) to follow.