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.
Original code stems back from the early '80s, providing a stable code
base, and the ISAM table format 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
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 things that
are design-related. See section 1.8.6 Known Errors and Design Deficiencies in MySQL.
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:
MySQL
4.x.
InnoDB
tables -- Stable (in 3.23 from 3.23.49)
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
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.
FULLTEXT
-- Beta
MySQL
4.0.
MyODBC 3.51
(uses ODBC SDK 3.51) -- Stable
MyISAM
tables -- Gamma
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.
MyISAM
tables in MySQL
4.0 for faster
insert of many rows.
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.
MySQL AB
provides high-quality support for paying customers,
and the MySQL
mailing list usually provides answers to common
questions. Bugs are usually fixed right away with a patch; for serious
bugs, there is almost always a new release.