MySQL, the popular open-source relational database management system, has officially released version 9.0. This release introduces new features and several deprecations and removes outdated components. Here they are.
What’s New in MySQL 9.0
One of MySQL 9.0’s headline features is the advanced handling of JSON data. Users can now save JSON output from EXPLAIN ANALYZE
commands directly into a user variable.
This feature, available under the syntax EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
, enhances the debugging and optimization of queries by allowing for easier manipulation and analysis of execution plans.
Additionally, MySQL 9.0 expands the functionality of prepared statements with support for Data Definition Language (DDL) commands such as CREATE EVENT
, ALTER EVENT
, and DROP EVENT
.
This update facilitates more dynamic and flexible database management scripts, although it does not support positional parameters and requires assembling the statement text from various input sources.
To provide detailed insights into db operations, MySQL 9.0 introduces two new tables within the Performance Schema: “variables_metadata” and “global_variable_attributes.” These tables offer comprehensive details about system variables, including type, scope, and permissible values, which are crucial for fine-tuning and maintaining system performance.
However, with new features come phase-outs of older functionalities. MySQL 9.0 deprecates the “MIN_VALUE” and “MAX_VALUE” columns of the Performance Schema’s “variables_info” table. These columns are now replaced by similar ones in the new “variables_metadata” table.
On the features removal side, the most notable one in MySQL 9.0 is removing the mysql_native_password
authentication plugin, which was deprecated in version 8.0.
This means that the server will now reject authentication requests from older client programs that lack CLIENT_PLUGIN_AUTH
capability. This change is part of MySQL’s broader push to enhance security and encourage users to adopt more secure authentication methods.
For more in-depth details on all changes, check out the release notes.