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

这篇具有很好参考价值的文章主要介绍了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.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)。

MySQL 8.3 发布, 它带来哪些新变化?,数据库,mysql文章来源地址https://www.toymoban.com/news/detail-811471.html

到了这里,关于MySQL 8.3 发布, 它带来哪些新变化?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql面试题30:什么是数据库连接池、应用程序和数据库建立连接的过程、为什么需要数据库连接池、你知道哪些数据库连接池

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 数据库连接池是一种用于管理和复用数据库连接的技术。它是在应用程序和数据库之间建立一组数据库连接,并以池的形式存储起来,每当应用程序需

    2024年02月07日
    浏览(58)
  • 新增守护进程管理、支持添加MySQL远程数据库,支持PHP版本切换,1Panel开源面板v1.5.0发布

    2023年8月14日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.5.0版本。 在这个版本中,1Panel新增了守护进程管理功能;支持添加MySQL远程数据库;支持添加FTP/S和WebDAV的SFTP服务;支持PHP版本切换。此外,我们进行了40多项功能更新和问题修复。1Panel应用商店也新增了

    2024年02月13日
    浏览(48)
  • Canal1--搭建Canal监听数据库变化

    默认安装了mysql(版本8.0.x); 新创建用户 授权 查看MySQL是否开启binlog模式 查看当前正在写入的binlog日志: 记住文件名和偏移量 去官网下载页面进行下载; 我这里下载的是1.1.7的版本: 解压canal.deployer-1.1.7.tar.gz,我们可以看到里面有五个文件夹: 打开配置文件conf/example/

    2024年04月26日
    浏览(36)
  • 基于Canal+kafka监听数据库变化的最佳实践

    1、前言         工作中,我们很多时候需要根据某些状态的变化更新另一个业务的逻辑,比如订单的生成,成交等,需要更新或者通知其他的业务。我们通常的操作通过业务埋点、接口的调用或者中间件完成。         但是状态变化的入口比较多的时候,就很容易漏掉

    2023年04月08日
    浏览(83)
  • MindsDB为许多不支持内置机器学习的数据库带来了机器学习功能

    选择平台的首要原则是“靠近数据”,让代码靠近数据是保持低延迟的必要条件。 机器学习,特别是深度学习往往会多次遍历所有数据(遍历一次被称为一个epoch)。对于非常大的数据集来说,理想的情况是在存储数据的地方建立模型,这样就不需要大量的数据传输。目前已

    2024年02月10日
    浏览(37)
  • OpenAI 全新发布文生视频模型 Sora,支持 60s 超长长度,有哪些突破?将带来哪些影响?

    OpenAI 的官方解释了在视频数据基础上进行大规模训练生成模型的方法。 我们下面会摘取其中的关键部分罗列让大家快速get重点。 喜欢钻研的伙伴可以到官网查看技术报告: https://openai.com/research/video-generation-models-as-world-simulators 技术特点 三维空间的连贯性:Sora可以生成带有

    2024年02月20日
    浏览(72)
  • openGauss学习笔记-200 openGauss 数据库运维-常见故障定位案例-表文件大小无变化

    200.1 VACUUM FULL一张表后,表文件大小无变化 200.1.1 问题现象 使用VACUUM FULL命令对一张表进行清理,清理完成后表大小和清理前一样大。 200.1.2 原因分析 假定该表的名称为table_name,对于该现象可能有以下两种原因: table_name表本身没有delete过数据,使用VACUUM FULL table_name后无需清

    2024年01月18日
    浏览(55)
  • Sql Server 数据库事务与锁,同一事务更新又查询锁的变化,期望大家来解惑!

    我有一个People表,有三行数据: 如果我们没详细了解数据库事务执行加锁的过程中,会不会有这样一个疑问:如下的这段 SQL 开启了事务,并且在事务中进行了更新和查询操作。 我们知道sql server数据库的默认事务级别是READ COMMITTED(已提交的读取),我们再看一下已提交读事

    2024年02月01日
    浏览(73)
  • ESLint v9正式发布,快来看看都有哪些变化

    早上醒来,伸个懒腰,真舒服 打开手机,ESLint 竟然发布了 v9 大版本,瞬间来了精神 一般大版本更新都会伴随重大更改甚至是破坏性更改,ESLint 这艘巨轮发展至今已经是前端的标配,一起看看它这次的重大更新能带给我们什么惊喜。 截止目前作者书写本文,Node.js 的 LTS 版本

    2024年04月15日
    浏览(51)
  • 阿里云关系型数据库有哪些?RDS云数据库汇总

    阿里云RDS关系型数据库大全,关系型数据库包括MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB,阿里云百科分享阿里云RDS关系型数据库大全: 目录 阿里云RDS关系型数据库大全 RDS关系型数据库大全 云原生数据库 PolarDB MySQL 版 云原生数据库

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包