MySQL 4.1 in a Nutshell

MySQL Server 4.0 laid the foundation for new features implemented in MySQL 4.1, such as subqueries and Unicode support, and for the work on stored procedures being done in version 5.0. These features come at the top of the wish list of many of our customers.

With these additions, critics of the MySQL Database Server have to be more imaginative than ever in pointing out deficiencies in the MySQL database management system. Already well-known for its stability, speed, and ease of use, MySQL Server will be able to fulfill the requirement checklists of very demanding buyers.

Features Available in MySQL 4.1

The features listed in this section are implemented in MySQL 4.1. A few other features are still planned for MySQL 4.1. See TODO MySQL 4.1.

Most new features being coded are or will be available in MySQL 5.0. See TODO MySQL 5.0.

Support for subqueries and derived tables
  • A subquery is a SELECT statement nested within another statement. A derived table (an unnamed view) is a subquery in the FROM clause of another statement. See Subqueries.

 
Speed enhancements
  • Faster binary client/server protocol with support for prepared statements and parameter binding. See C API Prepared statements.

  • BTREE indexing is now supported for HEAP tables, significantly improving response time for non-exact searches.

 
New functionality
  • CREATE TABLE table_name2 LIKE table_name1 allows you to create, with a single statement, a new table with a structure exactly like that of an existing table.

  • The MyISAM storage engine now supports OpenGIS spatial types for storing geographical data. See Spatial extensions in MySQL.

  • Replication can be done over SSL connections.

 
Standards compliance, portability, and migration
  • The new client/server protocol adds the ability to pass multiple warnings to the client, rather than only a single result. This makes operations such as bulk data loading much easier to track.

  • SHOW WARNINGS shows warnings for the last command. See SHOW WARNINGS.

 
Internationalization
  • To support applications that require the use of local languages, the MySQL software now offers extensive Unicode support through the utf8 and ucs2 character sets.

  • Character sets can now be defined per column, table, and database. This allows for a high degree of flexibility in application design, particularly for multi-language web sites.

  • For documentation for this improved character set support, see Charset.

 
Usability enhancements
  • In response to popular demand, we have added a server-based HELP command that can be used to get help information for SQL statements. The advantage of having this information on the server side is that the information is always applicable to the particular server version that you actually are using. Because this information is available by issuing a SQL statement, any client can be written to access it. For example, the help command of the mysql command-line client has been modified to have this capability.

  • In the new client/server protocol, multiple statements can be issued with a single call. See C API multiple queries.

  • The new client/server protocol also supports returning multiple result sets. This might occur as a result of sending multiple statements, for example.

  • A new INSERT ... ON DUPLICATE KEY UPDATE ... syntax has been implemented. This allows you to UPDATE an existing row if the INSERT would have caused a duplicate in a PRIMARY or UNIQUE key (index). See INSERT.

  • A new aggregate function, GROUP_CONCAT() adds the extremely useful capability of concatenating column values from grouped rows into a single result string. See Group by functions and modifiers.

 

The news section of this manual includes a more in-depth list of features. See News-4.1.x.

Stepwise Rollout

New features are being added to MySQL 4.1. The alpha version is already available for download. See Nutshell Ready for Immediate Use.

The set of features that are being added to version 4.1 is mostly fixed. Additional development is already ongoing for version 5.0. MySQL 4.1 will go through the steps of Alpha (during which time new features might still be added/changed), Beta (when we have feature freeze and only bug corrections will be done), and Gamma (indicating that a production release is just weeks ahead). At the end of this process, MySQL 4.1 will become the new production release.

Ready for Immediate Development Use

MySQL 4.1 is currently in the alpha stage, and binaries are available for download at http://www.mysql.com/downloads/mysql-4.1.html. All binary releases pass our extensive test suite without any errors on the platforms on which we test. See News-4.1.x.

For those wishing to use the most recent development source for MySQL 4.1, we make our 4.1 BitKeeper repository publicly available. See Installing source tree.