[译] 快速浏览 MySQL 8.0.29

[译] 快速浏览 MySQL 8.0.29

严少安 Lv.6

原文地址:https://www.percona.com/blog/quick-peek-at-mysql-8-0-29/
原文作者:David Stokes

MySQL8.0.29300x169.png

4月26日,Oracle 发布了 MySQL Server 8.0.29,本文是对发布说明的快速回顾。我用斜体字标注了我自己的评论。

那么第29版的 MySQL Server 都发布了什么呢? 它是带有新的、整洁的功能,还是一个修复漏洞的大礼包?

概述

虽然这个服务器版本有一些有趣的东西,但没有令人注目的特性需要立即升级。通读发布说明,看看其中是否有什么对你来说是必须的,但对我们大多数人来说,MySQL 8.0.29 不需要立即更新。如果这是一个生日或节日礼物,第29个版本就相当于得到一盒新的牙线——有用但不令人兴奋。

shell 也在进化,VS Code 的新版本看起来也很有前途。

MySQL Server 8.0.29

UTF8MB3?

服务器现在对 SHOW 命令的输出大量使用 UTF8MB3 (是3,不是4),当从内置字符集填充数据字典表时,会报告无效字符串。

再见 DATETIME/TIMESTAMP 中的任意分隔符

现在,使用任何非标准或多余分隔符或空格字符都会触发警告。MySQL 允许你使用任意的分隔符,在 TIME, DATE, DATETIME 和 TIMESTAMP 文字中使用任意数量的分隔符,在 DATETIME 和 TIMESTAMP 文字的日期和时间值之前,之后和之间使用任意数量的空白符。 那些平静的日子现在结束了。 预计该功能将在未来的版本中被删除。

已弃用的变量和选项

replica_parallel_type, query_prealloc_size, 和 transaction_prealloc_size 变量已弃用, mysqld 的选项 --abort-slave-event-count--disconnect-slave-event-count 也已弃用。

PRIMARY 和 SECONDARY 引擎

Performance Schema 现在跟踪 PRIMARY 和 SECONDARY 引擎用于处理查询。通常,这将是 InnoDB 和 HeatWave。现在有一个 EXECUTION_ENGINE 列来记录哪个引擎使用 COUNT_SECONDARY 列完成了工作,从而知道该引擎被使用了多少次。

SSL 库

版本从 1.1.1l 升级到 1.1.1.n

IF NOT EXISTS

对函数、过程和触发器增加的 IF NOT EXISTS 检查。 我们需要这个很久了。

分离的 XA 事务

组复制有一个问题,在另一个连接上准备的XA事务无法提交。现在可以由另一个连接提交或回滚准备好的XA事务。然后,当前会话还可以启动另一个XA或本地事务,而无需等待准备好的XA事务完成。

经典和 X 协议锁文件

MySQL 经典或X协议的锁文件,文件格式不同,可以阻塞服务器启动。但现在他们使用相同的格式。

即时删除表

ALTER TABLE … DROP COLUMN ALGORITHM=INSTANT 现在可用了。

安全持久化变量

我们现在可以使用安全的持久化变量,而不是使用 keyring。您仍然需要 keyring 组件代替 keyring 插件来保存加密的信息。所以数据保存在操作系统的文件中,而不是在 keyring 中。

克隆延迟

对于某些异步释放数据的操作系统来说,在删除旧数据后再克隆数据是有问题的。因此,新的 clone_delay_after_data_drop 变量允许您在克隆到达之前最都等待一个小时。 太糟糕了,我们没有像优步那样的“你的克隆x分钟内到达”的状态更新。

MyISAM

myisam_repair_threads 变量和 myisamchk 的 --parallel-check 选项被弃用。

隔离的变量

用于解析、解决和执行 SQL 语句的更好代码,现在对访问系统变量采取了更加强制的隔离。

错误修复

原文:
There are many bug fixes that take care of things from anonymous users with the PROCESS privilege could not select rows from the processlist table to histograms now storing buckets in dynamic arrays instead to reduce space overhead and will speed up selectivity estimation due to reduced indirection when performing a binary search on the buckets.

有许多错误修复处理来自具有 PROCESS 权限的匿名用户无法从 processlist 表中选择行到直方图现在将存储桶存储在动态数组中,以减少空间开销,并且当对桶执行二分搜索时,减少间接性而加快选择性估算。

我建议通篇阅读新版本的每个错误修复,因为会发现“啊哈”时刻,当您发现某些在意识边缘影响到您的实例,或者因别人的问题而幸灾乐祸。

MySQL Shell

MySQL Shell 有一个新的诊断工具,util.debug.collectDiagnostics,它从连接的 MySQL 服务器收集诊断信息。您可以在您选择的位置的 zip 归档文件中获得 TSV 和 YAML 格式的报告。这个工具能够使您获取诊断信息,包括,独立服务器、复制拓扑成员、MySQL 数据库服务中的数据库系统等。

并且在 shell 中,prompt() 函数提供了一个用来与用户交互的脚本。

译者注:错误修复那段翻译的不是很优雅,请包涵,如果您有更好的翻译版本,欢迎留言。

附:

  • Title: [译] 快速浏览 MySQL 8.0.29
  • Author: 严少安
  • Created at: 2022-04-28 12:04:26
  • Updated at: 2022-04-28 12:04:26
  • Link: https://shawnyan.cn/2022/mysql/fanyi-quick-peek-at-mysql-8-0-29/
  • License: This work is licensed under CC BY-NC-SA 4.0.
if (hexo-config('comment.enable') == true && hexo-config('comment.system') != "") { if (hexo-config('comment.system') == "waline") { @require "./waline.styl" } else if (hexo-config('comment.system') == "gitalk") { @require "./gitalk.styl" } else if (hexo-config('comment.system') == "twikoo") { @require "./twikoo.styl" } } .comments-container display inline-block margin-top $spacing-unit width 100% #comment-anchor width 100% height 10px .comment-area-title width 100% margin 10px 0 font-size 1.38rem color var(--default-text-color) font-family 'Consolas', '宋体', sans-serif font-weight bold i color var(--default-text-color) +redefine-tablet() margin 5px 0 font-size 1.2rem