MySQL 8.0.20 GA

MySQL最新版本8.0.20正式发布。与之前8.0的系列版本一样,这次的发行版除了包含缺陷修复,也同样包括新功能。下面快速浏览一下。

关键字:hash join、InnoDB双写缓冲、二进制日志事务压缩。

增加了SHOW_ROUTINE权限。使用该权限允许账户在最小权限下备份存储程序。

改进hash join。现在可以使用hash join代替BNL,hash join现在支持半连接、反连接、外连接。

加入新的索引级别的优化器提示。包括:JOIN_INDEX、NO_JOIN_INDEX、GROUP_INDEX、NO_GROUP_INDEX、ORDER_INDEX、NO_ORDER_INDEX、INDEX 及 NO_INDEX 。新的索引级别的优化器提示可以搭配SELECT, UPDATE和 DELETE语句使用,而以往的无法和DELETE一起使用。

Performance Schema改良。为了减少错误检测的内存开销,Performance Schema放弃了在全局范围收集会话相关的错误统计信息。此外,针对每个线程,帐户,用户或主机报告的错误摘要中不再包含全局的错误信息。

SQL语法改良。以前,语句的INTO子句 SELECT可能出现在以下两个位置之一:

SELECT * INTO OUTFILE 'file_name' FROM table_name;

SELECT * FROM table_name INTO OUTFILE 'file_name' FOR UPDATE;

现在,INTO可以出现在SELECT的最后:

SELECT * FROM table_name FOR UPDATE INTO OUTFILE 'file_name';

此外,还针对进行 UNION 的 INTO进行了一些更改,下面的语句结果相同:

... UNION SELECT * FROM table_name INTO OUTFILE 'file_name';

... UNION (SELECT * FROM table_name) INTO OUTFILE 'file_name';

... UNION SELECT * INTO OUTFILE 'file_name' FROM table_name;

... UNION (SELECT * INTO OUTFILE 'file_name' FROM table_name);

X Plugin改良。在启动中创建管理会话,以供达到客户端连接限制时获取服务器配置。初始化后立即可以访问MySQL系统变量等缺陷修复。

BLOB类型排序改变。改变了以往的非完整排序,服务器将BLOB类型转换为打包的插件进行排序,经测试,性能得到显著提升。

InnoDB改良。双写缓冲区的存储从系表空间移至双写文件。将双写缓冲区存储区移出系统表空间可减少写延迟,增加吞吐量并在双写缓冲区页的放置方面提供灵活性。

二进制日志事务压缩。从MySQL 8.0.20开始,您可以在MySQL服务器实例上启用二进制日志事务压缩。启用二进制日志事务压缩后,将使用zstd算法压缩事务有效负载,然后将其作为单个事件(Transaction_payload_event)写入服务器的二进制日志文件 。压缩后的事务有效负载在复制流中发送到从服务器,其他群组复制组成员或客户端(例如mysqlbinlog)时,保持压缩状态 。它们不会被接收器线程解压缩,并且仍以其压缩状态写入中继日志。因此,二进制日志事务压缩既可以节省事务的始发者,也可以节省接收者(及其备份)的存储空间,并在服务器实例之间发送事务时节省网络带宽。

CHANGE MASTER TO语句的新选项REQUIRE_TABLE_PRIMARY_KEY_CHECK使复制的从服务器可以选择自己的策略来进行主键检查。

MySQL 8.0.19开始,通过X协议连接发送的消息已支持压缩。MySQL 8.0.19开始,通过X协议连接发送的消息已支持压缩。在MySQL 8.0.19中,X协议对每种算法使用库默认压缩级别,客户端无法协商该默认压缩级别。从MySQL 8.0.20开始,客户端可以在协商期间为X协议连接请求特定的压缩级别。

上面内容为MySQL8.0.20的新功能快速一览,可以访问MySQL的在线手册获取完整的最新信息

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html

  • A+
所属分类:it杂谈 时间:2020-05-03