MySQL 8.0.31 GA

2022-11-21 20:09:57 浏览数 (1)

MySQL 8.0.31于10月11日正式发布,让我们快速浏览一下这一版本有哪些改进内容。

审计插件:审计插件的日志轮换函数audit_log_rotate(),简化了日志轮换的工作,用户无需手动更改日志名称,也无需设置audit_log_flush = ON。

组件服务:启用了新的组件服务,支持服务器组件和要在本地服务器中查询的插件。新的MySQL命令服务类似于C API函数libmysql。

OCI密钥存储组件:component_keyring_oci替代之前用于OCI的Keyring插件,用以支持在Oracle Cloud上进行密钥存储。

优化器改进:优化器的内部管理操作进行了一组改进,包括如下:

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

代码语言:javascript复制
(
  (SELECT a, b, c FROM t ORDER BY a LIMIT 3) ORDER BY b LIMIT 2
) ORDER BY c LIMIT 1;

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

代码语言:javascript复制
(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的一个快速浏览,更为详细的功能改进和错误修复,请访问官网手册。

0 人点赞