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.
Version 4.1 of the MySQL server includes many enhancements and new features. Binaries for this version are available for download at http://dev.mysql.com/downloads/mysql-4.1.html.
The following list summarizes what has been done in the 4.1 tree. For a full list of changes, please refer to the changelog sections for each individual 4.1 release.
Subqueries and derived tables (unnamed views). See Section 12.2.8, “Subquery Syntax”.
INSERT ... ON DUPLICATE KEY UPDATE ...
syntax. This allows you to
an existing row if the insert would cause a duplicate value in a
REPLACE allows you to overwrite
an existing row, which is something entirely different.) See
Section 12.2.4, “
A newly designed
aggregate function. See
Section 11.11, “Functions and Modifiers for Use with
GROUP BY Clauses”.
Extensive Unicode (UTF8) support.
Table names and column names now are stored in
UTF8. This makes MySQL more flexible, but
might cause some problems upgrading if you have table or column
names that use characters outside of the standard 7-bit US-ASCII
range. See Section 188.8.131.52, “Upgrading from MySQL 4.0 to 4.1”.
Character sets can be defined per column, table, and database.
New key cache for
MyISAM tables with many
tunable parameters. You can have multiple key caches, preload
index into caches for batches...
BTREE index on
Support for OpenGIS spatial types (geographical data). See Chapter 16, Spatial Extensions.
Faster binary protocol with prepared statements and parameter binding. See Section 17.6.4, “C API Prepared Statements”.
You can now issue multiple statements with a single C API call and then read the results in one go. See Section 17.6.12, “C API Support for Multiple Statement Execution”.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
table2 LIKE table1.