End of Product Lifecycle. Active development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see http://www.mysql.com/about/legal/lifecycle/#calendar. Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.
A new storage engine library (
a lot of new features. See
Section 13.1, “The
MyISAM Storage Engine”.
You can create in-memory
HEAP tables which
are extremely fast for lookups.
Support for big files (63-bit) on OSs that support big files.
LOAD_FILE(filename) to get the
contents of a file as a string value.
<=> operator that acts as
= but returns TRUE if both arguments are
NULL. This is useful for comparing changes
Added the ODBC 3.0
Columns defined as
FLOAT( are not
rounded on storage and may be in scientific notation (1.0
E+10) when retrieved.
REPLACE is now faster than
SHOW TABLE STATUS returns a lot
of information about the tables.
Privileges column to
Added comments to tables (with
CREATE TABLE ...
UNIQUE, as in
tbl_name (col INT NOT NULL
New create syntax:
tbl_name SELECT ...
New create syntax:
CREATE TABLE IF NOT EXISTS
Permit creation of
DATE_FORMAT() now requires
%” before any format
DELAYED is now a reserved word (sorry about
that :( ).
An example procedure is added:
sql_analyse.c. This describes the
data in your query. Try the following:
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([
This procedure is extremely useful when you want to check the data in your table!
BINARY cast to force a string to be
compared in case-sensitive fashion.
INNER join syntax. Note that this
INNER a reserved word!
Added support for netmasks to the host name in the MySQL grant
tables. You can specify a netmask using the
NULL IN (...) now returns
NULL instead of
null_column NOT IN (...)
Fix storage of floating-point values in
Changed parsing of
to be more strict. Now the fractional second part is detected
(and currently skipped). The following formats are supported:
Detect (and ignore) fractional second part from
LOW_PRIORITY attribute to
The default index name now uses the same case as the column name on which the index name is based.
Changed default number of connections to 100.
Use bigger buffers when using
DECIMAL(x,y) now works according to
Added aggregate user-defined functions. Thanks to Andreas F.
<firstname.lastname@example.org>) for this!
Some small changes to the join table optimizer to make some joins faster.
DISTINCT is much faster; it uses the new
UNIQUE functionality in
MyISAM. One difference compared to MySQL
3.22 is that the output of
DISTINCT is no
All C client API macros are now functions to make shared
libraries more reliable. Because of this, you can no longer
mysql_num_fields() on a
MYSQL object, you must use
Added use of
LIBWRAP; patch by Henning P.
Do not allow
AUTO_INCREMENT for other than
AUTO_INCREMENT now automatically
makes the column
NULL as the default value for
SQL_SMALL_RESULT is now default.
Added a shared library RPM. This enhancement was contributed
by David Fox (
--disable-large-files options to
configure.in for some systems where this
is automatically turned off because of broken implementations.
readline to 4.0.
CREATE TABLE options: