Go to the first, previous, next, last section, table of contents.


How stable is MySQL?

At TcX, MySQL has worked without any problems in our projects since mid-1996. When released to a wider public we noticed that there were some pieces of 'untested code' in MySQL that were quickly found by the new user group who made queries in a different manner. Each new release has had fewer portability problems than the previous one, even though they have all had a lot of new features, and we hope that it will be possible to label one of the next releases 'stable'.

Each release of MySQL has been usable and there have only been problems when users start to use code from 'the gray zones'. Naturally, outside users can't know what the gray zones are and I hope this section will clarify those currently known.

Here we will try to answer some of the more important questions that seems to concern a lot of people and clarify some issues. This section has been put together from the information that has come forward in the mailing list which is very active in reporting bugs.

How stable is MySQL? Can I depend on MySQL in this project?

This is about the 3.21.x version of MySQL. All known and reported bugs are fixed in the latest version with the exception of the bugs listed in the BUGS file which are things that are 'design' related.

MySQL is written in multiple layers and different independent modules. Here is a list of the different modules and how tested each of them are.

The ISAM table handler. Stable
This is how all the data is stored. In all MySQL releases there hasn't been a single (reported) bug in this code. The only known way to get a corrupted table is to kill the server in the middle of an update and because all data is flushed to disk between each query even this is unlikely to destroy any data beyond rescue. There hasn't been a single bug report about lost data because of bugs in MySQL either.
The parser and lexical analyser. Stable
There hasn't been a single reported bug in this system for a couple of months.
The C client code. Stable
No known problems. In early 3.20 releases there were some limitations in the send/receive buffer size. In 3.21.x the send/receive buffer is now dynamic up to a default of 512K.
mysql, mysqladmin and mysqlshow. Stable
The command line clients have had very few bugs.
mysqldump and mysqlimport. Beta
Rewritten for 3.21.
Basic SQL. Stable
The basic SQL function system and string classes and dynamic memory handling. Not a single reported bug on this system.
Query optimiser. Gamma
Some changes in 3.21.
Range optimiser. Alpha
Totally rewritten for 3.21.x
Join optimizer. Gamma
Small changes for 3.21.
GROUP BY, ORDER BY and related function COUNT(). Beta
Rewritten for 3.21 and throughly tested.
Locking. Gamma
This is very system dependent. On some systems there are big problems using standard OS locking (fcntl). In these case one should run the MySQL daemon with the --skip-locking flag. Known problems are some Linux systems and SunOS when using NFS-mounted file systems.
Linux threads. Gamma
The only problem found is with the fcntl() call, which is fixed by using --skip-locking. Some people have reported lockup problems with the 0.5 release.
Solaris 2.5+ pthreads. Stable
We use this for all our production work.
MIT threads (Other systems). Beta
No reported bugs since 3.20.15 and no known bugs since 3.20.16. On some system there is 'misfeature' where some operations are quote slow (a 1/20 second sleep is done between each query). Of course MIT threads may slow down everything a bit, but for index based selects a select is usually done in one time frame so there shouldn't be a mutex locking/thread juggling.
Other thread implementions. Alpha
The ports to other systems are still very new and may have bugs, either in MySQL but most often in the thread implementation itself.
LOAD DATA..., INSERT ... SELECT. Stable
Some people have thought they have found bugs in this but have turned up being misunderstandings. So check the manual before reporting bugs!
ALTER TABLE. Gamma
Partly rewritten for 3.21.
mysqlperl. Stable
No bugs reported except a lot of compiling and linking problems.
DBD. Beta
Now maintained by Jochen Wiedmann.
mysqlaccess. Beta
Written and maintained by
The Technical Documentation. Beta
It is improving.
MyODBC (uses ODBC SDK 2.5). Beta
It seems to work well with some programs.

TcX provides email support for paying customers, but the MySQL mailing list usually provides answers to all common questions. Bugs are usually fixed right away with a patch that usually works and for serious bugs there is almost always a new release.


Go to the first, previous, next, last section, table of contents.