MySQL Development Roadmap

This section provides a snapshot of the MySQL development roadmap, including major features implemented or planned for MySQL 4.0, 4.1, 5.0, and 5.1. The following sections provide information for each release series.

The production release series is MySQL 4.0, which was declared stable for production use as of Version 4.0.12, released in March 2003. This means that future 4.0 development is limited only to bugfixes. For the older MySQL 3.23 series, only critical bugfixes are made.

4.1 is available in gamma status and will soon move to production stage.

Active MySQL development currently is taking place in the MySQL 5.0 release series, this means that new features are being added there. MySQL 5.0 is available in alpha status.

Before upgrading from one release series to the next, please see the notes at the section called “Upgrading/Downgrading MySQL”.

Plans for some of the most requested features are summarized in the following table.

FeatureMySQL Series
Unions4.0
Subqueries4.1
R-trees4.1 (for MyISAM tables)
Stored procedures5.0
Views5.0
Cursors5.0
Foreign keys5.1 (already implemented in 3.23 for InnoDB)
Triggers5.0 and 5.1
Full outer join5.1
Constraints5.1

MySQL 4.0 in a Nutshell

MySQL Server 4.0 is available in production status.

MySQL 4.0 is available for download at http://dev.mysql.com/ and from our mirrors. MySQL 4.0 has been tested by a large number of users and is in production use at many large sites.

The major new features of MySQL Server 4.0 are geared toward our existing business and community users, enhancing the MySQL database software as the solution for mission-critical, heavy-load database systems. Other new features target the users of embedded databases.

Features Available in MySQL 4.0

Speed enhancements
  • MySQL 4.0 has a query cache that can give a huge speed boost to applications with repetitive queries. See the section called “The MySQL Query Cache”.

  • Version 4.0 further increases the speed of MySQL Server in a number of areas, such as bulk INSERT statements, searching on packed indexes, full-text searching (using FULLTEXT indexes), and COUNT(DISTINCT).

Embedded MySQL Server introduced
InnoDB storage engine as standard
  • The InnoDB storage engine is offered as a standard feature of the MySQL server. This means full support for ACID transactions, foreign keys with cascading UPDATE and DELETE, and row-level locking are now standard features. See InnoDB.

New functionality
  • The enhanced FULLTEXT search properties of MySQL Server 4.0 enables FULLTEXT indexing of large text masses with both binary and natural-language searching logic. You can customize minimal word length and define your own stop word lists in any human language, enabling a new set of applications to be built with MySQL Server. See the section called “Full-Text Search Functions”.

Standards compliance, portability, and migration
  • Many users will also be happy to learn that MySQL Server now supports the UNION statement, a long-awaited standard SQL feature.

  • MySQL runs natively on the Novell NetWare platform beginning with NetWare 6.0. See the section called “Installing MySQL on NetWare”.

  • Features to simplify migration from other database systems to MySQL Server include TRUNCATE TABLE (as in Oracle).

Internationalization
  • Our German, Austrian, and Swiss users will note that MySQL 4.0 now supports a new character set, latin1_de, which ensures that the German sorting order sorts words with umlauts in the same order as do German telephone books.

Usability enhancements

In the process of implementing features for new users, we have not forgotten requests from our loyal community of existing users.

  • Most mysqld parameters (startup options) can be set without taking down the server. This is a convenient feature for database administrators (DBAs). See SET OPTION.

  • Multiple-table DELETE and UPDATE statements have been added.

  • On Windows, symbolic link handling at the database level is enabled by default. On Unix, the MyISAM storage engine supports symbolic linking at the table level (and not just the database level as before).

  • SQL_CALC_FOUND_ROWS and FOUND_ROWS() are new functions that make it possible to find out the number of rows a SELECT query that includes a LIMIT clause would have returned without that clause.

The news section of this manual includes a more in-depth list of features. See the section called “Changes in release 4.0.x (Production)”.

The Embedded MySQL Server

The libmysqld embedded server library makes MySQL Server suitable for a vastly expanded realm of applications. By using this library, developers can embed MySQL Server into various applications and electronics devices, where the end user has no knowledge of there actually being an underlying database. Embedded MySQL Server is ideal for use behind the scenes in Internet appliances, public kiosks, turnkey hardware/software combination units, high performance Internet servers, self-contained databases distributed on CD-ROM, and so on.

Many users of libmysqld will benefit from the MySQL Dual Licensing. For those not wishing to be bound by the GPL, the software is also made available under a commercial license. The embedded MySQL library uses the same interface as the normal client library, so it is convenient and easy to use. See libmysqld.

On windows there are two different libraries:

libmysqld.libDynamic library for threaded applications.
mysqldemb.libStatic library for not threaded applications.

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. Already well-known for its stability, speed, and ease of use, MySQL Server is now able to fulfill the requirement checklists of very demanding buyers.

MySQL 4.1 is now available in gamma status, and will be production soon.

Features Available in MySQL 4.1

This section lists features implemented in MySQL 4.1.

New features currently being coded are or will be available in MySQL 5.0. See the section called “New Features Planned for 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 the section called “Subquery Syntax”.

Speed enhancements
  • Faster binary client/server protocol with support for prepared statements and parameter binding. See the section called “C API Prepared Statements”.

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

New functionality
  • CREATE TABLE tbl_name2 LIKE tbl_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 supports OpenGIS spatial types for storing geographical data. See Chapter 19, 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 it much easier to track problems that occur in operations such as bulk data loading.

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

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

  • Character sets can 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 Chapter 11, Character Set Support.

  • Per-connection time zones are supported, allowing individual clients to select their own time zone when necessary.

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 an 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 the section called “C API Handling of Multiple Query Execution”.

  • 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 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 the section called “Functions and Modifiers for Use with GROUP BY Clauses”.

The news section of this manual includes a more in-depth list of features. See the section called “Changes in release 4.1.x (Gamma)”.

Stepwise Rollout

The gamma version of MySQL 4.1 is available for download. See the section called “Ready for Immediate Development Use”.

MySQL 4.1 is currently in the Gamma stage (indicating that a production release is just weeks ahead). At the end of this process, MySQL 4.1 will become the new production release.

Development is already ongoing for version 5.0.

Ready for Immediate Development Use

MySQL 4.1 is currently in the gamma stage, and binaries are available for download at http://dev.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 the section called “Changes in release 4.1.x (Gamma)”.

For those wishing to use the most recent development source for MySQL 4.1, we also make our BitKeeper repositories publicly available. See the section called “Installing from the Development Source Tree”.

MySQL 5.0: The Next Development Release

New development for MySQL is focused on the 5.0 release, featuring stored procedures, updatable views, rudimentary triggers, and other new features. See the section called “New Features Planned for 5.0”.

For those wishing to take a look at the bleeding edge of MySQL development, we make our BitKeeper repository for MySQL version 5.0 publicly available. See the section called “Installing from the Development Source Tree”. As of December 2003, binary builds of version 5.0 have also been available.