MySQL二进制日志格式对复制的影响
复制的分类
基于SQL语句的复制 - SBR
主库二进制日志格式使用STATEMENT
在MySQL 5.1之前仅存在SBR模式, 又称之为逻辑复制.
主库记录CUD操作的SQL语句, 从库会读取并重放.
优点
生成的日志量少, 节约网络传输IO
当主从的列的顺序不一致时, SBR依然可以正常工作.
如对大表进行结构修改时, 可以先修改从库, 然后再进行主从切换.
缺点
- 对不确定性函数无法保证主从数据的一致
- 对于procedure, trigger, function有可能在主从上表现不一致(SBR BUG)
- 主库上要锁定多少行, 从库上也需要所以多少行, 所以相对于ROW复制时从库上需要更多的行锁
基于行的复制 - RBR
主库二进制日志格式使用ROW
优点
对不确定性函数友好, 如UUID()
减少从库上数据库锁的使用
insert into t_order_cnt(timestr, total, amount)
select date(order_date), count(1), sum(amout)
from t_order group by date(order_date);- 1
- 2
- 3
- 1
- 2
- 3
上面的SQL在主库执行时会对
t_order进行锁表操作, 对于STATEMENT的复制从库上也会对同样的表进行锁定, 但是基于ROW的复制仅需增加t_order对应的行的数据即可.
缺点
- 要求主从数据库的表的结构一致, 否则可能会中断复制
- 无法在从库上激活trigger
Github
基于Docker Compose构建的MySQL MHA集群
MySQL二进制日志格式对复制的影响的更多相关文章
- MySQL二进制日志总结
二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据 ...
- MySQL二进制日志(binary log)总结
本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- MySQl Study学习之--MySQl二进制日志管理
MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log) a.它包括的内容及作用例如以下: 包括了全部更新了数据或者已经潜在更新了数据(比方没 ...
- mysql 二进制日志
1.日志类型 二进制日志记录了所有对mysql数据库的修改事件,包括增删改事件和对表结构的修改事件. 2.配置使用二进制日志 在my.ini 配置 log-bin=mysql-bin ...
- MySQL二进制日志功能介绍
二进制日志记录所有更新数据的SQL语句,其中也包含可能更新数据的SQL语句,例如DELETE语句执行过程中无匹配的行.二进制日志中还包含了与执行SQL语句相关的内容,例如SQL语句执行的时间.错误代码 ...
- MySQL二进制日志挖掘器BinlogMiner 1.0发布了。
MySQL从2014年开始超越SQL Server, 占据DB-Engines数据库流行度排行榜第二名, 是一种非常流行的关系型数据库, 特别是在互联网领域, 是一种应该掌握的数据库系统.最近在学My ...
- MySQL二进制日志
一.二进制日志(The Binary Log) 1.简介 包含所有更新了的数据或者已经潜在更新了的数据(比如一条没有匹配任何行的delete语句) 包含所有更新语句执行时间的信息 不记录没有修改数据的 ...
- MySQL二进制日志的备份和恢复
二进制日志:记录数据库修改的相关操作,作用是即时点回复,主从复制 可以按时间滚动,也可以按大小滚动 server-id:服务器身份标识 一.二进制文件的删除方法,千万不要手动删除 PURGE BINA ...
- mysql二进制日志的开启和使用
二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句.语句以“事件”的形式保存,描述数据更改过程. 环境:win8 mysql5.6.23 1.mysql开启二进制日志 ...
随机推荐
- Xilinx ISE 14.1生成Rom内核并读取Rom中的数据
<一>建立一个项目readDataFromRom 详细过程参照另一篇文章 http://www.cnblogs.com/LCCRNblog/p/3397666.html <二> ...
- 1016: [JSOI2008]最小生成树计数
1016: [JSOI2008]最小生成树计数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 6200 Solved: 2518[Submit][St ...
- 从一个实例谈谈postgresql索引锁
最近客户在使用我司开发的数据库时,报告了如下问题(也不能算是问题,就是疑惑吧),环境如下: OS : Red Hat Enterprise Linux Server release 6.7 (Sant ...
- 乐视(LeTV)占用8080端口
- QT中槽的使用
一.建立槽和按钮之间的连接 connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数) 1.例子 connect(ui->pushButton,SIGNAL(clicked(boo ...
- Python连接Oracle数据库
今天使用Python连接数据库,连接没有问题,就是中文显示乱码,网上找了很多解决方案, 最后选择使用这个 #!/usr/bin/env python # -*- coding:utf-8 -*- #A ...
- 页面第一次加载,JS没有效果,刷新一下就好了
问题详述:页面跳转的时候,第一个第二个页面都没有问题,跳到第三个页面,JS脚本没有起作用,刷新一下就好了. 1.猜测:第一个页面和第二个页面的JS,会对第三个页面产生影响,(因为之前没有这个问题,只改 ...
- 掌握numpy(四)
数组的累加(拼接) 在前面讲了使用切片方法能够对数组进行切分,使用copy对切片的数组进行复制,那么数组该如何拼接呢? a1 = np.full((2,3),1)#填充数组 a2 = np.full( ...
- MySQL原理相关
1.索引 http://blog.codinglabs.org/articles/theory-of-mysql-index.html
- Python之signal模块
http://www.cnblogs.com/dkblog/archive/2011/03/07/1980636.html 1.超时处理 #!/usr/bin/env python2.7 #-*- c ...