MYSQL Write Set的示例分析

发布时间:2022-01-14 15:39:05 作者:小新
来源:亿速云 阅读:182

小编给大家分享一下MYSQL Write Set的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

基于MYSQL 的组复制,其实已经是一项成熟的技术了,从MYSQL 5.6 开始,到目前的8 ,属于接近初成熟的阶段。

但到底 GROUP REPLICATION 到底为什么比传统的主从复制要快,这是一个问题。我们现在就来说说为什么组复制要比你的传统复制快。

首先我们要理解两个事情,为什么要组复制,理由无非两个

1  提供成员之间更快的复制

2  提供多成员之间的认证

到底WRITE-SET 比原先的复制哪里快了

首先我们要了解几个问题和相关的参数

binlog_transaction_dependency_tracking  

这个参数有三个设置的选择项

1 commit_order   默认值,在从库进行顺序型的应用

2 writeset 依赖主库的事务的关联性,在从库可以进行非顺序型的并行应用

3 writeset_session 和第二点的不同在于SESSION的隔离性

MYSQL Write Set的示例分析

 我们可以比对 commit_order 和  writeset_session 之间的区别

首先我们可以创建一个表,并插入记录,然后观察LOG 中两个不同的参数的变化。

CREATE DATABASE test;

CREATE TABLE test ( id int NOT NULL AUTO_INCREMENT PRIMARY KEY,  text varchar(80) );

 insert into test (text) values ('3dsjfuiuiree');

insert into test (text) values ('3dereresdfere');

insert into test (text) values ('vcdreresdfere');

MYSQL Write Set的示例分析

我们可以看图,5个操作进行 last_committed 可以很明显的看到前两个操作是不能进行组提交的,而后面三个是可以进行组提交的。

如果我们改变相关的设置,改为order_commit ,三台组复制的机器上都更改了,但是结果和预想的不一样,根本没有用,提交的的时候无论你是更改成 commit_order ,还是  binlog_tranaction_dependency_history_size  设置为 1 都不能阻挡 MGR 的组提交方式。

而令我疑惑的是 binlog_tranaction_dependency_history_size 本身就是一个内存的hash ,我已经将其调整为1  ,怎么会commit 的

If we use dependency tracking using WRITESETs on the master, those writesets are preserved over time, up to a maximum history size, and then the dependency information is generated based on that. 

所有我的测试对象又转移到,传统的GTID 复制的机器上面, 两台机器然后最简单的主从复制,然后将复制的方式改为

set global binlog_transaction_dependency_tracking = writeset

然后去观察relay log 发现怎么样都不是组提交的方式,还是按照commit_order的方式进行提交 。

MYSQL Write Set的示例分析

看完了这篇文章,相信你对“MYSQL Write Set的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. MySQL和timeout的示例分析
  2. mysql中update语句的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:为何通信服务提供商需要实现SD-WAN

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》