MySQL 8.3 发布, 它带来哪些新变化?

1月16号 MySQL 官方发布 8.3 创新版 和 8.0.36 长期支持版本 (该版本 没有新增功能,更多是修复bug ),本文基于 官方文档 说一下 8.3 版本带来的变化。

一 增加的特性

1.1 GTID_NEXT 支持增加 TAG 选项。

之前的版本中 GTID_NEXT=UUID:number ,现在可以增加 一个 tag 字符串 GTID_NEXT=UUID:[TAG]:number ,用来对事务进行标示。 具体的用例如下:

mysql> show master status \G
*************************** 1. row ***************************File: mysql-bin.000001Position: 158Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:  
1 row in set, 1 warning (0.00 sec)mysql> insert into t(a) values(2);
Query OK, 1 row affected (0.00 sec)
mysql> show master status \G
*************************** 1. row ***************************File: mysql-bin.000001Position: 435Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:  00008300-0000-0000-0000-000000008300:1
1 row in set, 1 warning (0.00 sec)### 在会话级别设置 gtid_next 的值mysql> set session  gtid_next='00008300-0000-0000-0000-000000008300:yangyidba:3';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t(a) values(2);
Query OK, 1 row affected (0.00 sec)mysql> show master status \G
*************************** 1. row ***************************File: mysql-bin.000001Position: 722Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:  00008300-0000-0000-0000-000000008300:1:yangyidba:3  ## 变成系统值和手工指定的2个值的结合
1 row in set, 1 warning (0.00 sec)mysql> insert into t(a) values(2);
Query OK, 1 row affected (0.00 sec)mysql> show master status \G
*************************** 1. row ***************************File: mysql-bin.000001Position: 995Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:  00008300-0000-0000-0000-000000008300:1:yangyidba:1:3 
1 row in set, 1 warning (0.00 sec)mysql> set session  gtid_next='00008300-0000-0000-0000-000000008300:yangyidba:2';
Query OK, 0 rows affected (0.00 sec)mysql> insert into t(a) values(2);
Query OK, 1 row affected (0.00 sec)mysql> show master status \G
*************************** 1. row ***************************File: mysql-bin.000001Position: 1296Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:  00008300-0000-0000-0000-000000008300:1:yangyidba:1-3 
1 row in set, 1 warning (0.00 sec)
mysql> set session gtid_next='AUTOMATIC';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t(a) values(2);
Query OK, 1 row affected (0.00 sec)mysql> show master status \G
*************************** 1. row ***************************File: mysql-bin.000001Position: 1296Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:  00008300-0000-0000-0000-000000008300:1-2:yangyidba:1-3 
1 row in set, 1 warning (0.00 sec)

刚好玩的用法 可以参考 https://lefred.be/content/mysql-8-3-purging-data-from-your-innodb-cluster/。

1.2 EXPLAIN FORMAT=JSON 可选版本为1或者2

引入 explain_json_format_version 参数调整 explain json 格式的输出 。设置 explain_json_format_version=1 时 ,explain format=json的输出如下

{"query_block": {"select_id": 1,"cost_info": {"query_cost": "1.35"},"table": {"table_name": "t","access_type": "ALL","rows_examined_per_scan": 11,"rows_produced_per_join": 11,"filtered": "100.00","cost_info": {"read_cost": "0.25","eval_cost": "1.10","prefix_cost": "1.35","data_read_per_join": "176"},"used_columns": ["id","a"]}}
} |

设置 explain_json_format_version=2 时 ,explain format=json的输出如下

 {"query": "/* select#1 */ select `test`.`t`.`id` AS `id`,`test`.`t`.`a` AS `a` from `test`.`t`","operation": "Table scan on t","table_name": "t","access_type": "table","schema_name": "test","used_columns": ["id","a"],"estimated_rows": 11.0,"estimated_total_cost": 1.35
}
1.3 binlog_transaction_dependency_tracking 参数默认值改为 WRITESET

注意: 如果binlog_transaction_dependency_tracking设置为WRITESET或WRITESET_SESSION,binlog_format必须是ROW;MIXED在这种情况下不再受支持。

二 删除的功能 ,参数

2.1 移除参数
slave-rows-search-algorithms
log_bin_use_v1_events
relay-log-info-file
relay-log-info-repository
master-info-file
master-info-repository
transaction_write_set_extraction
skip-host-cache 
innodb 
skip-innodb
character-set-client-handshake 
old-style-user-limits

group_replication_ip_whitelistgroup_replication_ip_allowlist 替代

不再需要 group_replication_primary_member ,可以通过查看performance_schema.replication_group_members中的member_role字段。

三 Performance Schema Notes

  1. 大量的查询 SELECT * from performance_schema.data_locks 会导致 内存增加 和死锁。

四 Thread Pool Notes

  1. 增加 一个系统表 tp_connections 记录 连接池中每个链接的信息。

  2. tp_thread_state table:增加如下字段

    TIME_OF_ATTACH, 
    MARKED_STALLED,
    STATE,
    EVENT_COUNT, 
    ACCUMULATED_EVENT_TIME, 
    EXEC_COUNT, 
    ACCUMULATED_EXEC_TIME
    
  3. tp_thread_group_state :

    EFFECTIVE_MAX_TRANSACTIONS_LIMIT, 
    NUM_QUERY_THREADS, 
    TIME_OF_LAST_THREAD_CREATION, 
    NUM_CONNECT_HANDLER_THREAD_IN_SLEEP, 
    THREADS_BOUND_TO_TRANSACTION, 
    QUERY_THREADS_COUNT, 
    TIME_OF_EARLIEST_CON_EXPIRE
    

关于 Oracle MySQL 版本模型

Oracle 推出 MySQL 创新版长期支持(LTS)版,这是MySQL版本模型的重要改进。

创新版和长期支持(LTS)版都具备生产级的质量。如果您希望获取最新的功能和改进,并保持对最新技术的了解,MySQL创新版可能最适合您。这些发布版本非常适用于在快节奏的开发环境中工作的开发人员和数据库管理员,他们拥有高度自动化的测试和现代持续集成技术,以实现更快的升级周期。另一方面,如果您的环境需要稳定的行为,那么长期支持(LTS)版是最合适的选择。这些版本仅包含必要的修复,因此可以降低与数据库软件行为变化相关的风险。

以下内容翻译自 Oracle mysql 团队的官方blog , 肯定有读者朋友 对 为什么有 8.3.0 这样的版本出来,有疑问?下面其实就是官方的解答。

过渡到创新版和长期支持(LTS)版

我们将在即将发布的版本中过渡到新的MySQL版本模型。MySQL数据库版本 8.1.0 将是我们的第一个创新版,而 8.0.34+ 将在 8.0 版本的生命周期结束(预计为2026年4月)之前只提供bug修复。大约一年后,MySQL 8.x 最终将成为长期支持(LTS)版,用户将有足够的时间从 8.0.x 迁移到 8.x LTS 版本。

在实践中,在这个过渡期内,如果您希望获得MySQL数据库的最新功能、改进和所有bug修复,请使用创新版(例如8.1.x、8.2.x、8.3.x等)。如果您只需要MySQL数据库的bug修复,请使用8.0.x版本(例如8.0.35、8.0.36、8.0.37等)。在这两种情况下,您应该根据Oracle关键补丁更新(CPU)日历计划每季度更新您的MySQL数据库。当8.x成为长期支持(LTS)版时,您可以计划、测试并从8.0.x的bug修复版本迁移到长期支持(LTS)版(例如从8.0.37迁移到8.4.1)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件上传至Linux系统

文件上传 使用jsch库来建立一个SSH连接&#xff0c;然后通过该连接执行Linux命令来上传文件。 <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version> <!--或者你项目中的最新版本…

使用IntelliJ IDEA快速搭建springboot 基础模板项目

使用IntelliJ IDEA快速搭建springboot 基础模板项目&#xff01;今天和大家分享一下&#xff0c;如何使用IntelliJ IDEA里面的maven插件&#xff0c;来快速搭建一个简单的Springboot基础项目。 第一步&#xff0c;菜单里面找到&#xff0c;文件-》新建-项目。如图。我们勾选了是…

ChatGPT用来润色论文\生成完整长篇论文\进行AI绘图,到底有多强大!!

​课程安排 学习内容 第一章 2024年AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百度-文心一言 6.MoonshotAI-Kimi 7.智谱AI-GLM-4 第二章 OpenAI开发者大会后GPT最新技术 1.最新大模型GPT-4 Turbo详细介…

Spring Boot 整合 Camunda 实现工作流

工作流是我们开发企业应用几乎必备的一项功能&#xff0c;工作流引擎发展至今已经有非常多的产品。最近正好在接触Camunda&#xff0c;所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入&#xff0c;希望本文对您有所帮助。如果您是一名Java开发或Spring框架…

【博客搭建记录贴】问题记录:hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。

1&#xff0c;背景 hexo&#xff08;博客框架&#xff09;安装完毕之后&#xff0c;正准备看看其版本&#xff0c;发现出现下面脚本禁止运行的错误。 PS C:\Users\PC> hexo -v hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1&#xff0c;因为在此系统上禁止运行脚…

第8章-网络设备文件管理

1. 网络设备的文件系统 1.1. 概述 1.2. 文件类型 1.3. 存储方式 1.4. 文件管理 2. 文件的管理 3. 网络设备软件维护基础 4. 常见问题 1. 网络设备的文件系统 1.1. 概述 ① 设备以文件的方式对运行所需的数据进行存储&#xff1b; ② Linux&#xff1b; 文件&#xff1a…

【Flink-1.17-教程】-【四】Flink DataStream API(5)转换算子(Transformation)【分流】

【Flink-1.17-教程】-【四】Flink DataStream API&#xff08;5&#xff09;转换算子&#xff08;Transformation&#xff09;【分流】 1&#xff09;使用 filter 简单实现2&#xff09;使用侧输出流实现 所谓“分流”&#xff0c;就是将一条数据流拆分成完全独立的两条、甚至多…

Nginx 代理服务路径带/和不带/的问题

nginx初始配置如下 server {listen 6087;location / {#网站主页路径。此路径仅供参考&#xff0c;具体请您按照实际目录操作。#例如&#xff0c;您的网站运行目录在/etc/www下&#xff0c;则填写/etc/www。#允许跨域请求的域&#xff0c;* 代表所有add_header Access-Control-…

AMIS的组件学习使用

部分代码片段 {"id": "filterForm","className": " xysd-zbkb-pubquery","labelWidth": 130,"body": [{"type": "grid","className": "xysd-grid-query-input","c…

第12章_集合框架(Collection接口,Iterator接口,List,Set,Map,Collections工具类)

文章目录 第12章_集合框架本章专题与脉络1. 集合框架概述1.1 生活中的容器1.2 数组的特点与弊端1.3 Java集合框架体系1.4 集合的使用场景 2. Collection接口及方法2.1 添加2.2 判断2.3 删除2.4 其它 3. Iterator(迭代器)接口3.1 Iterator接口3.2 迭代器的执行原理3.3 foreach循…

Android TP方向调试

一、问题描述 拿到一款新TP&#xff0c;适配好驱动后&#xff0c;触摸屏幕发现触摸点位置和Android报点位置不一致&#xff0c;如上滑变成下滑或者左滑右滑等 二、问题分析 1.加载TP驱动&#xff0c;且驱动能正确上报数据 2.使用命令打开触摸报点 settings put system show…

dolphinscheduler节点二次开发需要改动的部分

dolphinscheduler节点二次开发需要改动的部分 前端 在dolphinscheduler-ui/public/images/task-icons/目录下新增两个节点的logo图片&#xff0c;一个为激活状态的一个为非激活状态的&#xff0c;如下。 修改文件dolphinscheduler-ui/src/views/projects/task/constants/task…

实战:加密传输数据解密

前言 下面将分享一些实际的渗透测试经验&#xff0c;帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主&#xff0c;技巧为辅&#xff0c;进入逆向的大门。 技巧 开局先讲一下技巧&#xff0c;掌握好了技巧&#xff0c;方便逆向的时候可以更加快速的找到关键…

HCIE之BGP基础概念(一)

BGP 一、BGP的基本概述二、BGP分类三、BGP的工作原理BGP报文类型&#xff1a;BGP状态机&#xff1a; 四、BGP对等体之间的交互原则解决BGP路由黑洞方法&#xff1a; 五、路由反射器路由反射规则路由反射器下防环联邦 六、BGP属性特点优选协议首选值&#xff08;PrefVal&#xf…

Oracle 数据库恢复删除的数据

需求描述&#xff1a; 同事让删除脏数据&#xff0c;结果删错了&#xff0c;需要恢复数据 思路&#xff1a; 利用闪回恢复数据只能恢复15分钟之内的&#xff0c;后面undo空间会被重写&#xff0c;就恢复不了&#xff0c;所以删除数据后&#xff0c;要谨慎再三确认&#xff0c…

正弦量的有效值

正弦量的有效值 引言正文 引言 相信有很多小伙伴们还记得&#xff0c;初中学习电压电流的时候&#xff0c;对于交变电流&#xff0c;电压&#xff0c;其有效值为正弦信号的最大值除以 1 2 \cfrac{1}{\sqrt{2}} 2 ​1​。 具体推到过程&#xff0c;作者以后有时间了会进行添加…

ESP8266 PlatformIO Arduino中为墨水屏制作u8g2自定义字库

Content 0. 前言1. 工具下载2. 字体下载3. 开始转换4. 添进字库0. 前言 使用的是 U8g2_for_Adafruit_GFX 字库,兴许你会在其他地方遇见更中意的字体,现在我们将它添加进去。 操作系统:Windows10 专业版 1. 工具下载 使用开源的 u8g2FontTool 软件,下载完成后解压。 资…

PHP编程实践:实际商品价格数据采集

引言 在电子商务领域&#xff0c;对商品价格进行数据采集和对比是一项常见的需求。本文将介绍如何使用PHP编程语言实现对1688和淘宝商品价格数据的采集和对比&#xff0c;帮助读者了解实际的编程实践过程。 一、数据采集原理 数据采集是指从互联网上获取数据的过程&#xff…

学习理解Java工厂模式

学习理解Java工厂模式 一、前言二、简单工程模式三、工厂方法模式四、抽象工厂模式五、静态工厂模式和 new 有什么区别&#xff1f;六、总结 一、前言 工厂模式目的是封装对象的创建过程&#xff0c;将对象的创建和使用分离开来&#xff0c;从而提高代码的可维护性和可扩展性。…

腾讯云上linux系统使用nginx,flask构建个人网站SSL证书过期换证书的操作步骤

ssl证书过期的时候&#xff0c;一般腾讯云提前一段时间给通知&#xff0c;让更换ssl证书&#xff0c;现在一般都可以免费更换&#xff0c;一般是一年期的&#xff0c;审核通过之后&#xff0c;需要下载nginx版本的证书&#xff0c;我的是4个文件&#xff0c;替换到nginx/cert文…