当前位置:首页 > 文章列表 > 数据库 > MySQL > MySQL 8.0.21 GA!重点解读

MySQL 8.0.21 GA!重点解读

来源:SegmentFault 2023-01-28 10:21:14 0浏览 收藏

本篇文章给大家分享《MySQL 8.0.21 GA!重点解读》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

本文来源:翻译 管长龙
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

MySQL 8.0.21 GA!重点解读

MySQL 8.0.21 版本已于昨日发布(dev.mysql.com),开始对一些术语如 Master / Slave 等做了替换。下面是来自官方团队对此版本的重点功能解读。

更详细的内容请参考:
https://dev.mysql.com/doc/rel...

InnoDB

添加全局禁用 redo log 功能的配置项(WL#13795)

支持动态启停 redo log,可使数据库写入速度更快,服务也更容易崩溃并丢失整个实例数据。

ALTER INSTANCE ENABLE|DISABLE INNODB REDO_LOG;

主要适用在加载初始数据时,首先禁用 redo log,加载数据,再次开启。

表空间文件名验证变为可选项(WL#14008)

通过参数 --innodb-validate-tablespace-paths (ON|OFF) 可决定是否开启表空间文件名验证功能。在 HDD 系统中扫描表空间开销很大,在我们知道用户不会频繁移动文件的情况下,可以通过跳过验证减少启动时间。即使该参数设置为 OFF,依然可以使用 ALTER TABLESPACE 语法。

锁系统的优化(WL#10314)

以往用单个闩锁保护保护所有队列的访问,扩展性很差,队列管理成为瓶颈,因此引入更细化的闩锁方法。将每个表和每一行都可以视为资源,并且事务可以请求对资源的访问权限。锁系统将 GRANTED 和 WAITING 的请求都存在一个队列中。为了允许队列并发操作,提供了一种安全快速锁定队列的方式。

将所有的 InnoDB 表空间限定为已知的目录 (WL#13065)

将表空间文件的位置限定在已知目录(datadir, innodb_data_home_dir, innodb_directories, and innodb_undo_directory)。目的是限制可以在任何位置创建文件从而导致恢复过程出现意外的情况。

Undo DDL 支持 ACID (WL#11819)

改进 Undo 表空间性能和安全性,可对 Undo 表空间自动截断。对 Undo 表空间的 CREATE / TRUNCATE 操作都被记录到 redo log。优点是避免了之前解决方案在 Undo 截断过程中需要两个检查点,这些检查点可能阻塞系统。此修改还修复了几个影响到 Undo 的命令:CREATE、DROP 和 TRUNCATE。

JSON

添加 JSON_VALUE 函数(WL#12228)

目的是简化 JSON 值的索引创建,可以从给定的 JSON 值中获取指定位置的值,并作为指定类型返回。

SELECT JSON_VALUE('{"name": "Evgen"}', '$.name')

以 VARCHAR(512) 返回的无引号字符串 Evgen,并带有 JSON 的默认排序规则。

SELECT JSON_VALUE('{"price": 123.45}', '$.price' RETURNING DECIMAL(5,2))

以 DECIMAL(5,2) 返回 123.45。

SQL DDL

CREATE TABLE…AS SELECT 语句成为原子语句(WL#13355)

以往此举作为两个不同的事务执行(CREATE TABLE 和 SELECT INTO)进行处理,结果在某些情况下,已经提交 CREATE TABLE 但回滚了 SELECT INTO。目前解决了此问题并顺便修复了(Bug#47899)。

优化器

引入了新的优化器参数以禁用限制优化(WL#13929)

prefer_ordering_index 默认开启,新的开关控制优化,存在限制子句时从非排序索引切换到分组依据和排序依据的排序索引。

半联接和单表 UPDATE / DELETE (WL#6057)

以往单表的快速查询绕过了优化器并直接执行,从而使得这些语句无法从更高级的优化(半联接)中受益。

// 以往以下两句用不到 semijoin,较慢
UPDATE t1 SET x=y WHERE z IN (SELECT * FROM t2); 
DELETE FROM t1 WHERE z IN (SELECT * FROM t2); 

//以下语句可以用到,较快
SELECT x FROM t1 WHERE z IN (SELECT * FROM t2);

优化后,以上 SQL 语句像其它查询一样通过优化器和执行器。不再需要在 UPDATE / DELETE 语句中添加无关表(多表 UPDATE / DELETE 可以使用 semijoin)。此外可在语句上执行 EXPLAIN FORMAT = TREE 和 EXLPAIN ANALYZE。目前解决了此问题并顺便修复了(Bug#96423)和(Bug##35794)。

组复制

降低缓存参数的最小值(WL#13979)

group_replication_message_cache_size 从 1 GB 降低到 128 MB。这使 DBA 可以减少 XCom 缓存的大小,以便 InnoDB Cluster 可以成功地部署在具有少量内存(例如 16GB)和良好网络连接的主机上。

指定可以通过哪些端点恢复流量(WL#13767)

用于指定在分布式恢复期间用于组复制的 IP 和端口。目的是控制网络基础架构中流量的恢复,例如:出于稳定性或安全性原因。

以 C++ 编译 XCom (WL#13842)

由于 C++ 的高级功能和更丰富的标准库,加速未来的发展。

将重要的 GP 日志消息分类为系统消息(WL#13769)

将某些组复制日志消息重新分类为系统消息。始终记录系统消息,而与服务器日志级别无关。目的是确保 DBA 可以观察组中的主要事件。

开启组复制语句以支持凭据作为参数(WL#13768)

扩展 START GROUP_REPLICATION 命令,以将 USER,PASSWORD,DEFAULT_AUTH 和 PLUGIN_DIR 接受为恢复通道的可选参数。目的是避免将凭据存储在文件中,这在某些环境中可能是安全问题。

组成员尝试自动恢复参数默认值修改(WL#13706)

group_replication_autorejoin_tries 默认值从 0 增加到 3。当该值为 0 时,组复制网络分区超过 5 秒钟会导致成员退出该组而不返回。导致需要执行手动操作以将成员带回。目标是提供“自动网络分区处理”,包括从网络分区中恢复,最有效的方法是将 group_replication_autorejoin_tries 设置大于 0。

组成员等待参数默认值修改(WL#13773)

group_replication_member_expel_timeout 从 0 增加到 5。以降低速度较慢的网络上或出现瞬时网络故障时不必要的驱逐和主要故障转移的可能性。默认值的新值表示该成员将在无法访问后 10 秒钟被驱逐:在怀疑成员已离开组之前花了 5 秒钟等待,然后在驱逐该成员之前又等待了 5 秒钟。

支持二进制日志校验和(WL#9038)

支持组复制中二进制日志校验和。在进行此更改之前,组复制插件要求禁用 binlog-checksum,现在取消了此限制。 Binlog 校验和的目的是通过自动计算和验证二进制日志事件的校验和来确保数据完整性。

X 插件

--mysqlx-bind-address 支持多值(WL#12715)

允许用户使用多个 IP 地址(接口)配置 X Plugin 绑定地址,用户可以在其中跳过主机的不需要的接口。 MySQL 8.0.13(WL#11652)中引入了对多个地址的绑定。

路由器

用户可配置的日志文件名(WL#13838)

可将日志写入 mysqlrouter.log 以外的文件名,并将控制台消息重定向到 stdout 而不是 stderr。

支持从应用程序中隐藏节点(WL#13787)

增加了对每个实例元数据属性的支持,该属性指示给定实例是隐藏的,不应用作目标候选对象。 MySQL Router 支持在 InnoDB Cluster 的各个节点之间分布连接。 通常将负载分配给所有节点是一个很好的默认设置,并且可以预期,但是用户可能有理由将一个节点排除在接收负载之外。 例如:用户可能希望从应用程序流量中排除给定的服务器实例,以便可以在不中断传入流量的情况下对其进行维护。

其它

创建 / 更改用户增加 JSON 描述(WL#13562)

元数据以 JSON 对象的结构添加到 mysql.user 表的 user_attributes 列中。JSON 对象允许用户还将其用户帐户元数据存储到该列中,例如:

ALTER USER foo ATTRIBUTE '{ "free_text" : "This is a free form text" }'; 
//将存储为 metadata
 {"metadata": {"free_text": "This is a free form text"}}. 

用户元数据在用户的信息架构表中公开。

为管理员连接端口支持单独的 TLS 证书集(WL#13850)

为用户端口和管理员端口使用不同的 TLS 证书。 MySQL 支持用于管理连接的专用端口。以前,管理员连接端口和常规客户端-服务器连接端口都共享同一组 TLS 证书。在托管的托管环境中,这带来了挑战,因为:

  1. 客户可能希望携带自己的证书
  2. 内部和外部证书的证书轮换策略可能不同。

现在,我们为管理连接端口引入了一套单独的 TLS 证书以及其他相关的配置和状态参数,并对来自这两个不同端口的连接使用了单独的 SSL 上下文。

异步客户端的压缩协议(WL#13510)

8.0.16 中添加了对异步客户端的支持。8.0.18 添加了对同步客户端协议压缩的支持。最后一步确保异步客户端也支持协议压缩。目的是减少跨数据中心的网络流量。这项工作基于 Facebook 的贡献(BUG#88567)。

安全的客户端库 LOAD DATA LOCAL INFILE 路径/目录(WL#13168)

客户端配置将指定允许和不允许的内容。 然后,当服务器请求文件时,客户端将检查规格并接受或拒绝请求。

弃用

在分区函数中弃用对前缀键的支持(WL#13588)

如果表在 PARTITION BY KEY 子句中包含具有前缀键索引的列,则产生弃用警告。将来,该语法将给出错误消息。

感谢您使用MySQL!

以上就是《MySQL 8.0.21 GA!重点解读》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
解决django 2.2与mysql兼容性问题解决django 2.2与mysql兼容性问题
上一篇
解决django 2.2与mysql兼容性问题
sagacity-sqltoy 缓存翻译功能整理,源码拆解
下一篇
sagacity-sqltoy 缓存翻译功能整理,源码拆解
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    23次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    35次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    37次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    47次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    40次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码