MySQL 8.0.31 现已正式发布,一些改进内容包括:

审计插件:审计插件的日志轮换函数 audit_log_rotate (),简化了日志轮换的工作,用户无需手动更改日志名称,也无需设置 audit_log_flush = ON。
组件服务:启用了新的组件服务,支持服务器组件和要在本地服务器中查询的插件。新的 MySQL 命令服务类似于 C API 函数 libmysql。
OCI 密钥存储组件:component_keyring_oci 替代之前用于 OCI 的 Keyring 插件,用以支持在 Oracle Cloud 上进行密钥存储。
优化器改进:优化器的内部管理操作进行了一组改进,包括如下:

带括号的查询表达式可以使用 UNION 进行嵌套,例如,​​​​​​

(
(SELECT a, b, c FROM t ORDER BY a LIMIT 3) ORDER BY b LIMIT 2
) ORDER BY c LIMIT 1;

当使用多组括号时,仍遵循现有的语义标准,更高的外部限制不能覆盖括号内部较低的限制,例如,

(SELECT ... LIMIT 3) LIMIT 5

最多返回三行数据。

UNION DISTINCT 和 UNION ALL 可以进行任意嵌套。

SQL 语法:SQL 不再支持使用 full 和 FULL 为对象命名,如果继续使用 full 或 FULL 作为表、视图、字段、存储过程等名称,将会被警告。SQL 支持使用 INTERSECT 和 EXCEPT。
查询重写插件优化:MySQL 支持查询重写插件,这些插件可以在服务器执行之前检查并可能修改服务器接收到的 SQL 语句,之前,无论用户权限如何所有的查询都需要重写,甚至包括执行的内部系统查询。在这一版本加入了新的权限 SKIP_QUERY_REWRITE,通过新的系统变量 rewriter_enabled_for_threads_without_privilege_checks 进行控制是否忽略对某些线程执行的语句进行改写。
OpenSSL:在内置 OpenSSL 的平台上,MySQL 使用的 OpenSSL 库升级至 1.1.1q。
监视缓冲池调整容量:InnoDB 提供了两个新的状态变量 Innodb_buffer_pool_resize_status_code 和 Innodb_buffer_pool_resize_status_progress 用以监视缓冲池在线调整的过程。
并行创建索引:InnoDB 现在支持并行索引构建,改进索引构建性能。
复制过滤优化:复制开启过滤时,副本不再引发复制错误相关的权限检查和 require_row_format 验证,副本将在全部的复制过滤应用后进行检查。
监视资源组:增加了状态变量 Resource_group_supported,用以监视服务器是否支持资源组。
二进制包优化:二进制包中包含了 curl,不再链接系统的 curl 库
资源争用优化:新的系统变量 thread_pool_transaction_delay,允许在工作线程执行新的事务前指定延迟,适用于由于资源争用引发的并行事务对其他操作带来的性能影响。
调整查询线程数量:新的系统变量 thread_pool_query_threads_per_group,使得用户可以增加线程组内的查询线程数量。
新的线程池插件:MySQL Database Service 中使用的线程池插件,在 MySQL 企业版中提供。

以上内容是 8.0.31 的一个快速浏览,更为详细的功能改进和错误修复,可访问官网。

稿源:https://mp.weixin.qq.com/s/h5l811FMpZH4xm6ATvU9tA

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。