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

news2024/11/26 0:53:06

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.000001
         Position: 158
     Binlog_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.000001
         Position: 435
     Binlog_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.000001
         Position: 722
     Binlog_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.000001
         Position: 995
     Binlog_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.000001
         Position: 1296
     Binlog_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.000001
         Position: 1296
     Binlog_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.coloradmin.cn/o/1399852.html

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

相关文章

Ant下载及安装

文章目录 前言一、Ant下载二、Ant安装三、Ant配置环境变量 前言 Ant是一个帮助构建软件的Java库和命令行工具。Ant是一个Java库和命令行工具,其任务是将构建文件中描述的过程驱动为相互依赖的目标和扩展点。Ant的主要已知用途是构建Java应用程序。Ant提供了许多内置…

DolphinScheduler-3.2.0集群部署教程

本文目录 1.集群部署方案(2 Master 3 Worker)2.前置准备工作3.端口说明4.DS集群部署1.时间同步2.配置用户、权限3.配置集群免密登陆4.ZK集群启动5.初始化数据库1.创建数据库、用户、授权2.解压缩安装包3.添加MySQL驱动至libs目录 6.配置文件修改1.dolphinscheduler_env.sh 配置…

为vs code配置unity开发环境

1.安装.NET.Core SDK 我们可以访问官网下载安装SDK及tool(https://www.microsoft.com/net/download/core)下载。有的系统只提供了执行文件,没有提供安装包,需要自己做一些配置。 下载好对应的版本就可以安装了,安装好以…

linux 使用笔记

1.查看运行内存 a.Free 快速查看内存的方法,也是经常使用的命令, -h 更人性化的显示内存的单元 -m 以M的形式显示 b.Top Top命令提供了实时性的运行中的程序的资源使用统计。可以根据内存的使用和大小来进行排序。 如上所示,top命令可以看…

实现SERVLET应用程序

实现SERVLET应用程序 Smart Software 的开发人员希望开发一个Web应用程序,使用servlet显示保存在表中的雇员信息。该应用程序需要有用户界面,用户可在该用户界面中指定要查看雇员数据的雇员ID。该界面还应显示网站被访问的次数。 解决方案 要解决上述问题,需要执行以下任务…

cs231n assignment1——SVM

整体思路 加载CIFAR-10数据集并展示部分数据数据图像归一化,减去均值(也可以再除以方差)svm_loss_naive和svm_loss_vectorized计算hinge损失,用拉格朗日法列hinge损失函数利用随机梯度下降法优化SVM在训练集和验证集计算准确率&a…

gin渲染篇

1. 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf package mainimport ("github.com/gin-gonic/gin""github.com/gin-gonic/gin/testdata/protoexample" )// 多种响应方式 func main() {// 1.创建路由// 默认使用了2个中…

(3)【Python数据分析进阶】Machine-Learning模型与算法应用-线性回归与逻辑回归

目录 一、Linear Regression线性回归应用 应用案例(一)——自定义数据(Custom data) 1、下载安装sklearn库 2、导入库函数 3、加载数据集 4、创建线性回归对象 5、模型训练 6、预测结果 7、绘制模型图像 8、应用模型进行…

014-信息打点-JS架构框架识别泄漏提取API接口枚举FUZZ爬虫插件项目

014-信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ爬虫&插件项目 #知识点: 1、JS前端架构-识别&分析 2、JS前端架构-开发框架分析 3、JS前端架构-打包器分析 4、JS前端架构-提取&FUZZ 解决: 1、如何从表现中的JS提取…

SpringBoot:详解Bean生命周期和作用域

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java项目分享》 《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、生命周期二…

禅道的安装及使用流程

目录 一.安装 1.下载禅道安装包​http://www.zentao.net/ 2.选择禅道开源版 3.选择需要下载的安装包(注意:下载的安装包必须放在根目录,不能移动) 4.将下载的安装包双击进行解压;解压后的文件为d:\xampp&#xff1b…

AI绘画Stable Diffusion进阶使用

本文讲解,模型底模,VAE美化模型,Lora模型,hypernetwork。 文本Stable Diffusion 简称sd 欢迎关注 使用模型 C站:https://civitai.com/ huggingface:https://huggingface.co/models?pipeline_tagtext-to-…

解锁黑匣子:Chain-of-Note如何为(RAG)带来透明度

英文原文地址:https://ai.plainenglish.io/unlocking-the-black-box-how-chain-of-note-brings-transparency-to-retrieval-augmented-models-rag-ae1ebb007876 论文地址:https://arxiv.org/pdf/2311.09210.pdf 2023 年 11 月 16 日 介绍 检索增强语…

AWS 专题学习 P8 (ECS、EKS、Lambda、CloudFront、DynamoDB)

文章目录 什么是 Docker?操作系统上的 DockerDocker 镜像存储Docker vs. Virtual MachinesDocker 入门AWS 中的 Docker Containers Management Amazon ECSEC2 Launch TypeFargate Launch TypeECS 的 IAM RolesLoad Balancer IntegrationsData Volumes (EFS)ECS Serv…

代码随想录算法训练营第三天 | 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表

链表理论基础 链表是一种通过指针串连在一起的线性结构,每一个节点由两部分组成,一个是数据域,一个是指针域(存放指向下一个节点的指针)。最后一个节点的指针指向 null。链表的存储方式:数组在内存中是连续…

TypeScript教程(一)在vscode中的配置TypeScript环境

TypeScript教程(一)在vscode中的配置TypeScript环境 文章目录 TypeScript教程(一)在vscode中的配置TypeScript环境一、前言二、具体步骤1、Node.js安装2、TypeScript安装3、helloworld 一、前言 未来的开发者们请上座&#xff0c…

EasyRecovery2024电脑数据恢复工具好不好用?

Ontrack是我们综述中的第一个产品,由于该软件的功效和广度,我认为它完全基于业务。有一个具有基本功能的免费版本和一系列付费版本,不仅可以恢复文件(免费版和家庭版),还可以创建磁盘映像/从 CD 和 DVD 恢复…

如何自学Python:一份详细的指南

📝个人主页:五敷有你 🔥系列专栏:有感而谈⛺️稳中求进,晒太阳 引言 Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能而受到许多程序员的喜爱。无论是数据分析、网络开发&#…

基于JavaWeb+SSM+Vue基于微信小程序的在线投稿系统的设计和实现

基于JavaWebSSMVue基于微信小程序的在线投稿系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.1微信小程序 2 2.2 MYSQL数据库 3 2.3 u…

11、Kafka ------ Kafka 核心API 及 生产者API 讲解

目录 Kafka核心API 及 生产者API讲解★ Kafka的核心APIKafka包含如下5类核心API: ★ 生产者APIKafka 的API 文档 ★ 使用生产者API发送消息 Kafka核心API 及 生产者API讲解 官方文档 ★ Kafka的核心API Kafka包含如下5类核心API: Producer API&#x…