On July 1st, Oracle announced the release of MySQL 8.0.38, the initial update for the 8.4 Long Term Support (LTS) series, and the inaugural MySQL 9.0 release. The Innovation release introduces new features, such as vector and JavaScript support. In contrast, the two LTS releases focus on stability, providing security updates, bug fixes, and performance improvements.
Source: MySQL documentation
The Oracle team acknowledges that MySQL 9.0 is an "initial release in preparation for adding new features in upcoming releases." The main highlights include initial and limited support for the vector datatype in CREATE and ALTER statements. Additionally, JavaScript-based stored programs and functions are available, but not in the Community Edition. Instead, they are available in the Enterprise Edition and the managed HeatWave service.
In the article "MySQL 9.0 Community Edition: A Quick Peek", David Stokes, technology evangelist at Percona, writes:
Is it innovation? No new exceptional technical features are included. We got many of those in 8.0, which may have jaded me on 9.0. Performance improvements will be judged as the benchmarks are done. (...) But can any of the items in the release notes be innovative? No, it is sound engineering that is helping to evolve the product. But it is not innovation. (...) As it is now, I would not recommend anyone other than the curious try Oracle’s MySQL 9.0 release.
The mysql_native_password authentication plugin, deprecated in MySQL 8.0, has been removed. The new 9.0 server will reject mysql_native_password authentication requests from older client programs lacking the CLIENT_PLUGIN_AUTH capability. However, mysql_native_password remains available on the client side, allowing MySQL 9.0 client programs to connect to earlier versions of the MySQL server.
Creating InnoDB tables with VECTOR columns is straightforward:
mysql> CREATE TABLE v1 (c1 VECTOR(5000));
Query OK, 0 rows affected (0.03 sec)
However, there are several restrictions on the use of vector columns: they cannot be used as any type of key; numeric functions, full-text search functions, and operators do not accept vectors as arguments; finally, a vector cannot be compared with any other type, and can only be compared with another vector for equality.
Oracle has also released the 9.0 versions of MySQL clients, tools, and connectors that support MySQL Server 8.0, 8.4 LTS, and 9.0 Innovation. Mike Frank, product management director at Oracle, writes:
During the innovation cycle, MySQL 9.x quarterly releases will include new features, deprecations and removals, and bug fixes (...) MySQL DBAs, developers, and users should migrate to the latest 9.0 GA versions of the Connectors and Clients which support 9.0 Innovation. 8.4 LTS, and 8.0 releases.
According to the release notes, the server includes 127 bug fixes, most notably bug #107700, and bug #34338001, which introduced performance regressions for GROUP BY queries in MySQL 8.0.
A critical bug has already been reported in the new release, prompting the community to advise against upgrading to the latest versions. The next quarterly releases are expected in October, including the bug and security fix releases MySQL 8.4.2 LTS and MySQL 8.0.39, as well as the innovation release MySQL 9.1.0.