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:
Alpha, Beta,Gamma, Production (Generally Available)
MySQL versions are identified by the attributes alpha, beta, gamma, and production:
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 http://dev.mysql.com/doc/mysql/en/installing-source.html.
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:
What is MySQL?
Part 1: Database glossary
Part 2: MySQL features
Part 3: MySQL limitations
Part 4: MySQL version numbers
Part 5: MySQL licensing
Part 6: MySQL version names
Part 7: MySQL alternatives
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.
This was first published in January 2007