MySQL 9.0 中的新功能

2024年 7月 3日 36.7k 0

MySQL 9.0 中的新功能

本节总结了自 MySQL 8.4 以来在 MySQL 9.0 中添加、弃用、更改和删除的内容。配套部分列出了在 MySQL 9.0 中添加、弃用或删除的 MySQL 服务器选项和变量;请参阅第 1.5 节 “自 8.4 以来在 MySQL 9.0 中添加、弃用或删除的服务器和状态变量和选项”。

  • MySQL 9.0 中添加或更改的功能

  • MySQL 9.0 中不推荐使用的功能

  • MySQL 9.0 中删除的功能

MySQL 9.0 中添加或更改的功能

MySQL 9.0 中添加了以下功能:

  • 保存 EXPLAIN ANALYZE INTO 的 JSON 输出。从 MySQL 9.0.0 开始,现在支持使用此处所示的 synatx 将输出保存 JSON EXPLAIN ANALYZE 到用户变量中:

    EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

    该变量随后可以用作任何MySQL的JSON函数的JSON参数(参见第14.17节 “JSON函数”)。该 INTO 子句仅受以下支持 FORMAT=JSON ; FORMAT 必须显式指定。这种形式 EXPLAIN ANALYZE 还支持可选的 FOR SCHEMA or FOR DATABASE 子句。

     注意

    仅当 explain_json_format_version 服务器系统变量设置为 2 时,此功能才可用;否则,尝试使用它会引发 ER_EXPLAIN_ANALYZE_JSON_FORMAT_VERSION_NOT_SUPPORTED (EXPLAIN ANALYZE 不支持 explain_json_format_version=1 的 FORMAT=JSON)。

    有关其他信息和示例,请参阅获取执行计划信息。

  • 准备好的语句中的事件 DDL。从 MySQL 9.0.0 开始,可以准备以下语句:

    • CREATE EVENT

    • ALTER EVENT

    • DROP EVENT

    这些语句不支持位置参数( ? 占位符);必须从字符串文本、系统变量和用户变量的某种组合中组装要准备的语句文本。以可重用的方式实现此目的的一种方法是将语 CREATE EVENT 句的文本组合到存储过程的正文中,将语句的任何可变部分作为 IN 参数传递给存储过程;准备汇 PREPARE 编的文本;使用所需的参数值调用该过程。有关更多信息,请参见 PREPARE、EXECUTE 和 DEALLOCATE PREPARE 语句,以及预准备语句中允许的 SQL 语法。有关示例,请参见第 15.1.13 节 “CREATE EVENT 语句”。

  • 性能架构系统变量表。MySQL 9.0 向性能模式添加了两个新表,它们提供有关服务器系统变量的信息。下面列出了这些表:

    • 该 variables_metadata 表提供了有关系统变量的一般信息。此信息包括 MySQL 服务器识别的每个系统变量的名称、范围、类型、范围(如果适用)和描述。

      此表中的两列 ( MIN_VALUE 和 MAX_VALUE ) 旨在替换 variables_info 表中已弃用的列。

    • 该 global_variable_attributes 表提供有关服务器分配给全局系统变量的属性值对的信息。

    有关更多信息,请参见第 29.12.14 节 “性能架构系统变量表”。

MySQL 9.0 中不推荐使用的功能

以下功能在 MySQL 9.0 中已弃用,可能会在以后的系列中删除。在显示替代方案的情况下,应更新应用程序以使用它们。

对于使用 MySQL 9.0 中已弃用的功能且已在更高版本的 MySQL 版本中删除的应用程序,从 MySQL 9.0 源复制到运行更高版本的副本时,语句可能会失败,或者可能对源和副本产生不同的影响。为避免此类问题,应修改使用 9.0 中弃用的功能的应用程序以避免这些问题,并在可能的情况下使用替代方法。

  • 性能架构variables_info表列。Performance Schema variables_info 表的 MIN_VALUE 和 MAX_VALUE 列现已弃用,并且可能会在将来的 MySQL 版本中删除。相反,请使用具有相同名称的 variables_metadata 表列(请参阅在MySQL 9.0中添加或更改的功能)。

MySQL 9.0 中删除的功能

以下项目已过时,已在 MySQL 9.0 中删除。在显示替代方案的情况下,应更新应用程序以使用它们。

对于使用 MySQL 9.0 中删除的功能的 MySQL 8.4 应用程序,从 MySQL 8.4 源复制到 MySQL 9.0 副本时,语句可能会失败,或者可能对源和副本产生不同的影响。为了避免此类问题,应修改使用MySQL 9.0中删除的功能的应用程序以避免它们,并在可能的情况下使用替代方案。

  • mysql_native_password插件。MySQL 8.0 中已弃用的 mysql_native_password 身份验证插件已被删除。服务器现在拒绝来自没有 CLIENT_PLUGIN_AUTH 功能的旧客户端程序的 mysql_native 身份验证请求。

    由于此更改,还删除了以下服务器选项和变量:

    • --mysql-native-password 服务器选项

    • --mysql-native-password-proxy-users 服务器选项

    • default_authentication_plugin 服务器系统变量

    为了向后兼容, mysql_native_password 在客户端上仍然可用,以便MySQL 9.0客户端程序可以连接到早期版本的MySQL服务器。在MySQL 9.0中,内置于客户端程序早期版本中的MySQL本机身份验证插件已转换为必须在运行时加载的插件。

    有关更多信息,请参见第 8.4.1 节 “身份验证插件”。

官方文档下载:《MySQL 9.0 版本说明》_2024年7月_英文版.pdf

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论