Dateline: 16 October 2001, Uppsala, Sweden
Long promised by MySQL AB and long awaited by our users, MySQL server 4.0 is now available in alpha version for download from http://www.mysql.com/ and our mirrors.
Main 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.
The rollout of MySQL server 4.0 will come in several steps, with the first version labelled 4.0.0 already containing most of the new features. Additional features will be incorporated into MySQL 4.0.1, 4.0.2, and onward; very probably within a couple of months, MySQL 4.0 will be labelled beta. Further new features will then be added in MySQL 4.1, which was targeted for alpha release in third quarter 2002.
Users are not recommended to switch their production systems to MySQL server 4.0 until it is released in beta version. However, even the initial release has passed our extensive test suite without any errors on any of the platforms we test on. Due to the large number of new features, we thus recommend MySQL server 4.0 even in alpha form for development use, with the release schedule of MySQL server 4.0 being such that it will reach stable state before the deployment of user applications now under development.
libmysqld makes MySQL server suitable for a vastly expanded realm of applications. Using the embedded MySQL server library, one 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, etc.
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 Section 8.4.9.
Version 4.0 further increases the speed of MySQL server in a number of areas, such as bulk INSERTs, searching on packed indexes, creation of FULLTEXT indexes, as well as COUNT(DISTINCT).
The table handler InnoDB is now offered as a feature of the standard MySQL server, including full support for transactions and row-level locking.
MySQL server 4.0 will support secure traffic between the client and the server, greatly increasing security against malicious intrusion and unauthorised access. Web applications being a cornerstone of MySQL use, web developers have been able to use Secure Socket Layer (SSL) to secure the traffic between the the end user browser and the web application, be it written in PHP, Perl, ASP or using any other web development tool. However, the traffic between the development tool and the mysqld server process has been protected only by virtue of them being processes residing on computers within the same firewall. In MySQL server 4.0, the mysqld server daemon process can itself use SSL, thus enabling secure traffic to MySQL databases from, say, a Windows application residing outside the firewall.
Our German, Austrian, and Swiss users will note that we have a new character set, latin_de, which corrects the German sorting order, placing German umlauts in the same order as German telephone books.
Features to simplify migration from other database systems to MySQL Server include TRUNCATE TABLE (like in Oracle) and IDENTITY as a synonym for automatically incremented keys (like in Sybase). Many users will also be happy to learn that MySQL server now supports the UNION statement, a long-awaited standard SQL feature.
In the process of building features for new users, we have not forgotten requests by the community of loyal users. We have multi-table DELETE statements. By adding support for symbolic linking to MyISAM on the table level (and not just the database level as before), as well as by enabling symlink handling by default on Windows, we hope to show that we take enhancement requests seriously. Functions like SQL_CALC_FOUND_ROWS and FOUND_ROWS( ) make it possible to know how many rows a query would have returned without a LIMIT clause.
For the upcoming MySQL server 4.0 releases (4.0.1, 4.0.2, and onward), expect the following features now still under development:
Mission-critical, heavy-load users of MySQL server will appreciate the additions to our replication system and our online hot backup. Later versions of 4.0 will include fail-safe replication; already existing in 4.0.0, the LOAD DATA FROM MASTER command will soon automate slave setup. The online backup will make it easy to add a new replication slave without taking down the master, and have a very low performance penalty on update-heavy systems.
A convenience feature for Database Administrators is that mysqld parameters (startup options) can soon be set without taking down the servers.
The new FULLTEXT search properties of MySQL server 4.0 enable the use of FULLTEXT indexing of large text masses with both binary and natural-language searching logic. Users can customise minimal word length and define their own stop word lists in any human language, enabling a new set of applications to be built on MySQL server.
Many read-heavy applications will benefit from further increased speed through the rewritten key cache.
Many developers will also be happy to see the MySQL command help in the client.
Internally, through a new .frm file format for table definitions, MySQL server 4.0 lays the foundation for the new features of MySQL server 4.1 and onward, such as nested subqueries, stored procedures, and foreign key integrity rules, which form the top of the wish list for many of our customers. Along with those, we will also include simpler additions, such as multi-table UPDATE statements.
After those additions, critics of the MySQL Database Server have to be more imaginative than ever in pointing out deficiencies in the MySQL Database Management System. For long already known for its stability, speed, and ease of use, MySQL server will then match the requirement checklist of very demanding buyers.