Go to the first, previous, next, last section, table of contents.
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.