MySQL Version Numbers
Even for connoisseurs of MySQL it is a bit of a challenge to keep track of which version of MySQL is current and which functions are contained in which versions. This section provides some information on MySQL numbering. As of January 2005 there are four main versions being worked on by the MySQL development team:
- MySQL 3.23.n: The first version of this series, 3.23.0, was published in August 1999. Since 3.23.32 (January 2001) MySQL 3.23.n has been considered stable. The current version is 3.23.58. Although MySQL 3.23 does not contain many of the innovations of recent years, it is the version most in use among Internet providers. There will be no further extensions toMySQL 3.23.n. New versions will only fix discovered errors or security holes.
- MySQL 4.0.n: The first version of this series, 4.0.0, was published in October 2001. Since March 2003 (4.0.12) MySQL 4.0.n has been considered stable and is now recommended for production use. The current version is 4.0.23. As with MySQL 3.23, new versions appear only to correct bugs.
- MySQL 4.1.n: The first version in this series (4.1.0) has been available for download since April 2003. Since October 2004 (version 4.1.7), MySQL 4.1.n has been considered stable and is recommended for production use.
- MySQL 5.0.n: The first version in this series (5.0.0) has been available since December 2003 for download.
Alpha, Beta,Gamma, Production (Generally Available)
MySQL versions are identified by the attributes alpha, beta, gamma, and production:
- Alpha means that the version is in the throes of the development process and that new functions and even incompatible changes are to be expected. Although an alpha version is not published until it contains no known errors, it is highly probable that many undiscovered errors still lurk within. Loss of data during testing of an alpha version is quite possible! Alpha versions are of interest only to developers who wish to try out the latest features of MySQL.
- Beta means that this version is largely complete, but it has not been thoroughly tested. Major changes are not expected.
- Gamma means that the beta versions have become more or less stable. The goal now is to discover errors and resolve them.
- Production or Generally Available (GA) means that MySQL developers have the impression that the version is mature and stable enough that it can be used for mission-critical purposes.
According to the MySQL documentation, in production versions, only corrections, and no new functionality, are to be expected. However, this has not always held true in the past, and even with stable versions substantial changes have been made. Of particular note is the case of MySQL 3.23.n. After the version had been declared stable (3.23.32), there came general support for InnoDB and BDB tables (3.23.34), and later, integrity rules for InnoDB tables (3.23.44).
Furthermore, many minor extensions were introduced. As a rule, MySQL developers are pleased with such extensions, but at the same time, compatibility problems among different production versions can arise. In practice, this means that a new MySQL version (that is, n.n.0) always has the status alpha. With higher version numbers, the status rises to beta, gamma, and finally, production.
Normal MySQL users should use exclusively MySQL versions that have the status production. If you are developing Web applications, you should find out which version your Internet service provider is using. (Since Internet service providers are concerned with maintenance and stability, they are not generally keen on using the latest version, preferring earlier versions, which may not contain many of the functions of the newer versions.)
Tip: If you want to experiment with a development version that is not yet available in compiled format (and thus has not even reached alpha status), instructions on downloading and compiling the source code can be obtained at
MySQL Functions Ordered by Version Number
It is not always the easiest thing in the world to determine which particular database version can be used with which version of MySQL. Of course, the version number often reveals when a function first became officially available, but it often happens that thereafter, significant changes to the function are made or bugs fixed, so that a stable implementation occurs only several versions later. Note as well that certain functions are available only for particular table formats. Table 1-1 ventures a glance into the future. The entries are based on information contained in the MySQL documentation as of spring 2005.
The projections into the future come, naturally, without warranty of any kind. In the past, it frequently occurred that particular functions became available earlier or later than originally projected.
Table 1-1: MySQL Functions Past and Future
|Full-text search in MyISAM tables||3.23|
|Transactions with BDB tables||3.23.34|
|Transactions with InnoDB tables||3.23.34|
|Referential integrity for InnoDB tables||3.23.34|
|DELETE and DELETE across several tables||4.0|
|UPDATE across several tables||4.0|
|UNION (unite several SELECT results)||4.0|
|Query cache (speeds up repeated SQL commands)||4.0|
|Embedded MySQL library||4.0|
|Encrypted connections (Secure Socket Layer, SSL)||4.0|
|Hot backup for InnoDB (commercial add-on product)||4.0|
|GPL for client libraries (previously LGPL)||4.0|
|Unicode support (UTF8 and UCS2 = UTF16)||4.1|
|GIS support (GEOMETRY data type, R-tree index)||4.1|
|Prepared Statements (SQL commands with parameters)||4.1|
|ROLLUP extension for GROUP BY||4.1|
|Better password encryption in the mysql.user table||4.1|
|Individual InnoDB tablespace files for each table||4.1|
|VARCHAR columns with more than 255 characters||5.0|
|Genuine BIT data type||5.0|
|Stored procedures (SPs)||probably 5.0|
|Triggers (automatic execution of SQL code)||5.0/5.1|
|Space-saving InnoDB tablespace format||5.0/5.1|
|New schema management (data dictionary, INFORMATION_SCHEMA database)||5.0|
|FULL OUTER JOIN||probably 5.1|
|Referential integrity for MyISAM tables||probably 5.1|
|Fail-safe replication||probably 5.1|
|Hot backup for MyISAM tables||probably 5.1|
|Column-level constraints||probably 5.1|
|XML support||planned, but no date given|
|User-defined data type||not currently planned|
The information for the table was drawn from the following pages of the MySQL documentation:
The above tip is excerpted from from Chapter 1, "What is MySQL?" of The Definitive Guide to MySQL 5 by Michael Kofler, courtesy of Apress. Find it helpful? Purchase the book here.
About the author: Michael Kofler holds a Ph.D. in computer science from Graz Technical University. He has written a number of successful computer books on topics such as Visual Basic, Visual Basic .NET, and Linux. Michael is the author of The Definitive Guide to MySQL 5, Third Edition and Definitive Guide to Excel VBA, Second Edition from Apress