MySQL 9.0 was released on July 1, 2024. This is an ‘Innovation’ release, which means it provides access to the latest features and improvements in MySQL technologies. Innovation releases are the opposite of the Long Term Support (LTS) releases, where stability is the top priority, and only needed security and other fixes are available. This blog post is a quick review of the release notes for MySQL 9.0. My comments are in italics and do not reflect Percona’s views.

For those who missed it or have short memories, MySQL 8.0 was widely criticized for having too many new features. Many of these new features needed extra development and sometimes lots of work to become stable. New features can be handy, but stability is more important than anything else in production. But some of us yearn for the cutting-edge, slightly wild new ‘toys’ to tinker with. 

So, what new features are in the 9.0 Community Edition? We have already been informed that things like vector data handling and embedded JavaScript functions are not in the Community Edition and are saved exclusively for the HeatWave variant.

Innovation releases promise new features, But are those promises kept?

Bugs

There are 127 bug fixes. One fix is ‘Removed functionality specific to the Fusion IO atomic write feature, a product that was last available in 2014. (Bug #35072139)’  Does anyone still have their Fusion Cards in production? 

Hopefully, the fix will improve performance:  ‘SELECT … GROUP BY queries were at least twice as slow with the TempTable engine than the Memory engine (Bug #107700, Bug #34338001)’. It will be interesting to see if this fix will help speed up 9.0  to near 5.7 performance.

Almost gone

The mysql_native_password authentication plugin was deprecated in MySQL 8.0 and has been removed, er, moved. A 9.0 server will reject mysql_native authentication requests from older client programs lacking the CLIENT_PLUGIN_AUTH capability. However, mysql_native_password remains available for backward compatibility on the client. This authentication plugin has been converted into a dynamically loadable plugin. This and the SLAVE/MASTER (yup, still there) situation should not have dragged on this long.

Two new PS tables

The variables_metadata and global_variable_attricutes tables have been added to the performance schema. They will track system variables and attribute-value pairs assigned by the server to global variables.

It might be worth looking at the DOCUMENTATION column as the wording differs from the manual.

And last, if not least

The range of error numbers for new errors in MySQL 9 has been designated to begin with 6400.  This is valuable to those writing third-party tools that do not want to conflict with error numbers used by Oracle. It can also help you spot complaints caught by MySQL 9.0. 

Summary

Well, 127 bug fixes are a good thing.  But what about the rest of Oracle’s MySQL 9.0, the Innovation Release?

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. Many people kept with the now obsolete 5.7 to avoid performance degradation. 8.4, ‘out of the box’ was slower than 8.0. My fingers are crossed that the GROUP BY issue listed above boosts performance. 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.

For those asking when the Percona release of 9.0 will be available, exploring the new code will take some time. Benchmarking, tuning, adding in the enterprise features you have for free from Percona, and lots of testing take time. As it is now, I would not recommend anyone other than the curious try Oracle’s MySQL 9.0 release.

Subscribe
Notify of
guest

7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Me_me

When Percona Server 8.0.37/8.0.38 will be available ?

hcymysql

There are no technical highlights in this segment.

John

We went from 5.7 to MariaDB due to missing query cache in newer MySQL. Lets hope it will return one day.

Dave Stokes

MySQL’s query cache was single-threaded and a major performance bottle neck, so do not expect a return.

Pravata Dash

Correcting….The newly other introduced table along with variables_metadata is global_variable_attributes not global_variable_attricutes.

José Antonio López Valadez

I just downloaded and installed this version but it gives me the “error 1045 mysql 28000 access denied…”
I already tried to change the password and everything that StackOverflow suggests, do you have any other suggestion? I’m working on windows

Rob

Will this version at least be available for ARM64 without having to use a Docker container that costs more than 20% performance?
With MySQL 8 you have already refused to offer an ARM64 version that works without Docker.