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.
The following list summarizes the features in MySQL Server 4.1 that are not present in previous versions. For a full list of changes, please refer to the changelog sections for individual 4.1 releases.
Subqueries and derived tables (unnamed views). See Section 12.2.8, “Subquery Syntax”.
INSERT ... ON DUPLICATE KEY UPDATE ...
syntax. This enables you to
UPDATE an existing row if the
insert would cause a duplicate value in a
REPLACE enables you to overwrite
an existing row, which is something entirely different.) See
Section 12.2.4, “INSERT Syntax”.
A newly designed
aggregate function. See
Section 11.15, “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 18.104.22.168, “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.7, “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.15, “C API Support for Multiple Statement Execution”.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
table2 LIKE table1.