This section addresses the questions ``How stable is MySQL Server?'' and ``Can I depend on MySQL Server in this project?'' We will try to clarify these issues and answer some important questions that concern many potential users. The information in this section is based on data gathered from the mailing list, which is very active in identifying problems as well as reporting types of use.
The original code stems back to the early 1980s. It provides a stable code base, and the ISAM table format used by the original storage engine remains backward-compatible. At TcX, the predecessor of MySQL AB, MySQL code has worked in projects since mid-1996, without any problems. When the MySQL Database Software initially was released to a wider public, our new users quickly found some pieces of ``untested code''. Each new release since then has had fewer portability problems (even though each new release has also had many new features).
Each release of the MySQL Server has been usable. Problems have occurred only when users try code from the ``gray zones.'' Naturally, new users don't know what the gray zones are; this section therefore attempts to document those areas that are currently known. The descriptions mostly deal with Version 3.23 and 4.0 of MySQL Server. All known and reported bugs are fixed in the latest version, with the exception of those listed in the bugs section, which are design-related. See Bugs.
The MySQL Server design is multi-layered with independent modules. Some of the newer modules are listed here with an indication of how well-tested each of them is:
Replication --- Gamma | Large groups of servers using replication are in production use, with good results. Work on enhanced replication features is continuing in MySQL 5.x. |
InnoDB tables --- Stable (in 3.23 from 3.23.49) | The InnoDB transactional storage engine has been declared stable in the MySQL 3.23 tree, starting from version 3.23.49. InnoDB is being used in large, heavy-load production systems. |
BDB tables --- Gamma | The Berkeley DB code is very stable, but we are still improving the BDB transactional storage engine interface in MySQL Server, so it will take some time before this is as well tested as the other table types. |
Full-text searches --- Beta | Full-text searching works but is not yet widely used. Important enhancements have been implemented in MySQL 4.0. |
Connector/ODBC 3.51 (uses ODBC SDK 3.51) --- Stable | In wide production use. Some issues brought up appear to be application-related and independent of the ODBC driver or underlying database server. |
Automatic recovery of MyISAM tables --- Gamma | This status applies only to the new code in the MyISAM storage engine that checks if the table was closed properly on open and executes an automatic check/repair of the table if it wasn't. |
Bulk-insert --- Alpha | New feature in MyISAM tables in MySQL 4.0 for faster insert of many rows. |
Locking --- Gamma | This is very system-dependent. On some systems there are big problems using standard operating system locking (fcntl()). In these cases, you should run mysqld with the --skip-external-locking flag. Problems are known to occur on some Linux systems, and on SunOS when using NFS-mounted filesystems. |
Paying customers receive high-quality support directly from MySQL AB. MySQL AB also provides the MySQL mailing list as a community resource where anyone may ask questions.
Bugs are usually fixed right away with a patch. For serious bugs, there is almost always a new release.