原文地址:https://www.percona.com/blog/mysql-8-0-28-quick-peek/
原文作者:David Stokes
TL;DR
MySQL Server & shell 8.0.28中做了很多出色的工作,但是你真的需要立即安装它吗?
在从 "你可能应该等待升级 "到 "尽快更新 "的范围内,它属于 "你可以等待 "类别
MySQL服务器
发布说明的最大部分详细介绍了130多个固定的错误。 这些修复包括从修复内存泄漏到性能模式中的新工具。
新的或改变的功能
窗口功能现在最多可以有127个不同的窗口。
InnoDB现在支持ALTER TABLE … 使用ALGORITHM=INSTANT来重命名列的操作。
函数FROM_UNIXTIME()、UNIX_TIMESTAMP()和CONVERT_TZ()现在可以在支持它们的平台上处理64位数值,包括64位版本的Linux、MacOS和Windows。
你现在可以在全局和每个用户的基础上监控和限制内存分配。你现在可以通过检查global_connection_memory状态变量的值来观察所有用户连接所消耗的总内存。你可以通过设置connection_memory_limit变量来指定每个用户连接的资源消耗限制。如果一个用户的内存使用量超过了这个量,就不能发出额外的查询。你也可以通过设置global_connection_memory_limit来施加一个全局内存限制。每当global_connection_memory超过该全局限制时,任何普通用户都不能发布需要使用内存的新查询。系统用户,如MySQL根帐户,不受这些限制的约束。 我喜欢可观察性策略,但担心严厉地使用来节制用户,并认为有可能出现以root身份运行过多的查询来规避新限制。
失误
用于构建软件包的GnuPG密钥在2月中旬过期,许多人试图从早期版本更新他们的服务器,当他们的软件包管理软件试图验证软件时,可能会看到讨厌的程序。 修复方法是重新下载YUM或APT repo,或下载MySQL GnuPG公钥并将其添加到你的系统的GPG钥匙圈。
弃用和删除说明
用于CHARACTER SET latin1的快捷键ASCII和用于CHARACTER SET ucs2的UNICODE现在已被废弃。另外,ucs2、macroman、macce、dec和hp8等字符集以及它们的所有拼写方式现在都被废弃了。是时候转向UTF8MB4了,如果你还没有的话。
梳理分类
某些列类型的排序(未列出),包括JSON和TEXT,如果排序缓冲区的大小不是排序中最大行的15倍,有时会耗尽排序缓冲区。现在,排序缓冲区只需要是最大排序键的15倍。希望这能改善排序时间。
MySQL的外壳
MySQL Shell似乎正在以令人印象深刻的速度在每个版本中获得新的特性和功能。 几年前作为旧的CLI程序的替代品开始,现在已经成为MySQL使用的一把瑞士军刀。
移动节点
将InnoDB集群节点从一个集群移动到另一个集群,现在可以通过删除和重新创建实例上的集群元数据模式来确保它与新集群的元数据模式完全对应。 这是一个 "很好的 "变化,当用节点玩音乐椅的时候。
SSH隧道
MySQL Shell现在支持连接到MySQL服务器实例的SSH隧道。一个SSH隧道可以在同一用户从同一远程服务器实例连接到同一主机的连接之间共享。MySQL Shell的秘密存储可以存储连接到SSH服务器和身份文件的密码和口令,以便为未来的连接自动检索。一个新的shell.listSshConnections()函数返回一个活动的SSH隧道列表。 这对于安全问题很重要的云计算情况来说应该是很方便的。
多因素认证
MySQL 8.0.27及以上版本包括对多因素认证的支持。这种能力包括需要最多三个认证值的MFA形式。authentication_policy系统变量定义了账户可以有多少个认证因素(或被要求有)以及每个因素可以使用的认证方法。为了启用使用需要多个密码的账户对MySQL服务器的认证,MySQL Shell现在支持命令行连接的–密码1、–密码2和–密码3选项,允许指定多达三个密码。现有的–密码选项和–密码1选项被视为等同。你可以不安全地在命令行上的选项后面指定一个密码值(请不要这样做),或者如果选项没有给出密码值,MySQL Shell将依次提示用户每个密码。这些选项只支持使用命令行参数进行的经典MySQL协议连接。所以不在X协议中吗!
跳过Grant Tables和util.dumpX
MySQL Shell的实例转储工具util.dumpInstance()、模式转储工具util.dumpSchemas()和表转储工具util.dumpTables()不能用于以–skip-grant-tables选项启动的MySQL服务器实例,这意味着这些工具不能用于在这种紧急情况下提取数据。现在,这些工具可以检测在这种情况下用于所有连接的特殊账户,并假定该账户拥有所有可用的权限。用户选项也被自动设置为假,因为在这种情况下不能收集一些授予信息。 这在危急情况下应该是很方便的!
延迟索引生成
MySQL Shell的转储加载工具util.loadDump()可以通过deferTableIndexes选项将二级索引的创建推迟到表数据被加载之后。以前,延迟索引不能在定义了二级引擎的表中创建,因为DDL语句不能在这些表中执行。现在,如果索引被推迟,该工具将从表中移除SECONDARY_ENGINE子句,并在索引创建后将其重新加入。 这确实使转储的恢复变得更快。
评论
