<< Главная страница

1.6. MySQL Development Roadmap

This section provides a snapshot of the MySQL development roadmap, including major features implemented in or planned for various MySQL releases. The following sections provide information for each release series.

The current production release series is MySQL 5.0, which was declared stable for production use as of MySQL 5.0.15, released in October 2005. The previous production release series was MySQL 4.1, which was declared stable for production use as of MySQL 4.1.7, released in October 2004. “Production status” means that future 5.0 and 4.1 development is limited only to bugfixes. For the older MySQL 4.0 and 3.23 series, only critical bugfixes are made.

Active MySQL development currently is taking place in the MySQL 5.0 and 5.1 release series; and new features are being added only to the latter.

Before upgrading from one release series to the next, please see the notes in Section 2.11, “Upgrading MySQL”.

The most requested features and the versions in which they were implemented or are scheduled for implementation are summarized in the following table:

FeatureMySQL Series
Foreign keys3.23 (for the InnoDB storage engine)
R-trees4.1 (for the MyISAM storage engine)
Stored procedures5.0
XA transactions5.0
Foreign keys5.2 (implemented in 3.23 for InnoDB)
Triggers5.0 and 5.1
Row-Based Replication5.1

1.6.1. MySQL 4.0 in a Nutshell

MySQL 4.0 is available for download at 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. Features Available in MySQL 4.0

  • Speed enhancements

    • MySQL 4.0 implemented a query cache that can give a major speed boost to applications with repetitive queries. See Section 5.13, “The MySQL Query Cache”.

    • MySQL 4.0 further increased 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).

  • Introduction of Embedded MySQL Server

    • The Embedded Server library added in this release can easily be used to create standalone and embedded applications. The embedded server provides an alternative to using MySQL in a client/server environment. See Section, “The Embedded MySQL Server”.

  • InnoDB storage engine as standard

    • The InnoDB storage engine began to be offered as a standard feature of the MySQL server. This provided full support for ACID transactions, foreign keys with cascading UPDATE and DELETE, and row-level locking as standard features. See Section 14.2, “The InnoDB Storage Engine”.

  • New functionality

    • The enhanced FULLTEXT search capabilities of MySQL Server 4.0 enabled FULLTEXT indexing of large text masses with both binary and natural-language searching logic. It became possible to customize minimal word length and define your own stop word lists in most human languages, enabling a broader class of applications to be built with MySQL Server. See Section 12.7, “Full-Text Search Functions”.

  • Standards compliance, portability, and migration

    • MySQL Server added support for the UNION statement, a standard SQL feature.

    • Starting with version 4.0, MySQL runs natively on Novell NetWare 6.0 and higher. See Section 2.7, “Installing MySQL on NetWare”.

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

  • Internationalization

    • German-speaking users should note that MySQL 4.0 added support for a new character set, latin1_de, which ensures that words with umlauts are sorted in the same order as in German telephone books.

  • Usability enhancements

    • As of version 4.0, most mysqld parameters (startup options) can be set without taking down the server. This is a convenient feature for database administrators. See Section 13.5.3, “SET Syntax”.

    • Multiple-table DELETE and UPDATE statements were added.

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

    • The addition of the SQL_CALC_FOUND_ROWS and FOUND_ROWS() functions made 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 MySQL 4.0 features. See Section D.2, “Changes in release 4.0.x (Recent; still supported)”. The Embedded MySQL Server

The libmysqld embedded server library made MySQL Server suitable for a wider range of applications. 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 in Internet appliances, public kiosks, turnkey hardware/software combination units, high performance Internet servers, self-contained databases distributed on CD-ROM, and so on.

The embedded MySQL library uses the same interface as the normal client library. See Section 17.1, “libmysqld, the Embedded MySQL Server Library”. Embedded MySQL is available under the same dual-licensing model as the MySQL Server; see for more information.

On Windows there are two different libraries:

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

1.6.2. 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, which were desired by many of our customers.

MySQL Server 4.1 is currently in production status, and binaries are available for download at . All binary releases pass our extensive test suite without any errors on the platforms on which we test. See Section D.1, “Changes in release 4.1.x (Production)”.

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

This section lists features implemented in MySQL 4.1. Features that are available in MySQL 5.0 are described in Section 1.6.3, “What's New in 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 Section 13.2.8, “Subquery Syntax”.

  • Speed enhancements:

    • Faster binary client/server protocol with support for prepared statements and parameter binding. See Section 17.2.4, “C API Prepared Statements”.

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

  • Added 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 added support for OpenGIS spatial types for storing geographical data. See Chapter 16, Spatial Extensions.

    • Support was added for replication over SSL connections.

    • Support for a number of additional storage engines was implemented in the MySQL 4.1 release series:

      Note: These engine were implemented at different points in the development of MySQL 4.1. Please see the indicated sections for particulars in each case.

  • Standards compliance, portability, and migration:

    • The enhanced client/server protocol available beginning with MySQL 4.1.1 provides the ability to pass multiple warnings to the client, rather than only a single result, making it much easier to track problems that occur in operations such as bulk data loading.

    • SHOW WARNINGS shows warnings for the last command. See Section, “SHOW WARNINGS Syntax”.

  • Internationalization and Localization:

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

    • Definition of character sets by column, table, and database. This allows for a high degree of flexibility in application design, particularly for multi-language Web sites. See Chapter 10, Character Set Support.

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

  • Usability enhancements:

    • The addition of a server-based HELP command that can be used to get help information for SQL statements. This information is always applicable to the particular server version being used. Because this information is available by issuing an SQL statement, any client can access it. For example, the help command of the mysql command-line client has been modified to have this capability.

    • The improved client/server protocol allows multiple statements to be issued with a single call, and for returning multiple result sets. See Section 17.2.9, “C API Handling of Multiple Query Execution”.

    • The syntax INSERT ... ON DUPLICATE KEY UPDATE ... was implemented. This allows you to update an existing row if the insert would have caused a duplicate value for a primary or unique index. See Section 13.2.4, “INSERT Syntax”.

    • The aggregate function GROUP_CONCAT(), added the capability to concatenate column values from grouped rows into a single result string. See Section 12.10, “Functions and Modifiers for Use with GROUP BY Clauses”.

The News section of this manual includes a more in-depth list of MySQL 4.1 features. See Section D.1, “Changes in release 4.1.x (Production)”.

1.6.3. What's New in MySQL 5.0

The following features are implemented in MySQL 5.0.

  • BIT Data Type: Can be used to store numbers in binary notation.

  • Cursors: Elementary support for server-side cursors.

  • Data Dictionary (Information Schema): The introduction of the INFORMATION_SCHEMA database in MySQL 5.0 provided a standards-compliant means for accessing the MySQL Server's metadata; that is, data about the databases (schemas) on the server and the objects which they contain.

  • Instance Manager: Can be used to start and stop the MySQL Server, even from a remote host.

  • Precision Math: MySQL 5.0 introduced stricter criteria for acceptance or rejection of data, and implemented a new library for fixed-point arithmetic. These contributed to a much higher degree of accuracy for mathematical operations and greater control over invalid values.

  • Storage Engines: Storage engines added in MySQL 5.0 include ARCHIVE and FEDERATED.

  • Stored Routines: Support for named stored procedures and stored functions was implemented in MySQL 5.0.

  • Strict Mode and Standard Error Handling: MySQL 5.0 added a strict mode where by it follows standard SQL in a number of ways in which it did not previously. Support for standard SQLSTATE error messages was also implemented.

  • Triggers: MySQL 5.0 added limited support for triggers.

  • VARCHAR Data Type: The maximum effective length of a VARCHAR column was increased to 65,532 bytes, and stripping of trailing whitespace was eliminated.

  • Views: MySQL 5.0 added support for named, updatable views.

For those wishing to take a look at the bleeding edge of MySQL development, we make our BitKeeper repository for MySQL publicly available. See Section 2.9.3, “Installing from the Development Source Tree”.

На главную