MySQL 4.0 In A Nutshell
Long promised by MySQL AB and long awaited by our users, MySQL 4.0 is now available in alpha version for download from www.mysql.com and our mirrors.
Main new features of MySQL 4.0 are geared towards our existing business and community users, enhancing MySQL (TM) as the solution for mission-critical, heavy load database systems. Other new features target the users of embedded databases.
The rollout of MySQL 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 onwards; very probably within two months, MySQL 4.0 will be labelled beta. Further new features will then be added in MySQL 4.1, which is targeted for alpha release in December/January.
Ready for immediate development use
Users are not recommended to switch their production systems to MySQL 4.0 until it is released in beta version later Q4/2001. 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 4.0 even in alpha form for development use, with the release schedule of MySQL 4.0 being such that it will reach stable state before the deployment of user applications now under development.
libmysqld makes MySQL suitable for a vastly expanded realm of applications. Using the embedded MySQL server library, one can embed MySQL into various applications and electronics devices, where the end user has no knowledge of there actually being an underlying database. Embedded MySQL is ideal for use behind the scenes in internet appliances, public kiosks, turn-key hardware/ software combination units, high performance internet servers, self-contained databases distributed on CD-ROM etc.
Many embedded MySQL users will benefit from the dual licensing scheme of MySQL, where besides the GPL license also commercial licensing is available for those not wishing to be bound by the GPL. The embedded MySQL library uses the same interface as the normal client library, so it is convenient and easy to use.
Other features available from MySQL 4.0.0
MySQL 4.0 further increases the speed of MySQL in a number of areas, such as bulk INSERTs, searching on packed indices, creation of FULLTEXT indices as well as COUNT(DISTINCT).
The table handler InnoDB is now offered as a a feature of the standard MySQL server, including full support for transactions and row-level locking.
MySQL 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 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 4.0, the mysqld server daemon process can itself use Secure Sockets Layer (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 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 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 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() makes it possible to know how many rows a query would have returned without a LIMIT clause.
Future MySQL 4.0 features
For the upcoming MySQL 4.0 releases (4.0.1, 4.0.2 and onwards), expect the following features now still under development:
Mission-critical, heavy-load users of MySQL will appreciate the additions to our replication system and our online hot backup. Later versions of 4.0 will include fail-safe replication; already in existing 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 4.0 enables 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.
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.
MySQL 4.1, the following development release
Internally, through a new .frm file format for table definitions, MySQL 4.0 lays the foundation for the new features of MySQL 4.1, 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 MySQL 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 will then match the requirement checklist of very demanding buyers.