17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication  基于语句和行的复制的优势和劣势

每个binary logging格式有优势和劣势,对于很多用户, mixed replication 格式提供了最好的数据完整性和性能的组合。

如果,然而, 你需要利用特定功能基于语句的或者基于行格式的 当执行某个人物,

你可以使用这个章节的信息,提供了他们的优势和劣势的一个总结,

    Advantages of statement-based replication

    Disadvantages of statement-based replication

    Advantages of row-based replication

    Disadvantages of row-based replication 

基于语句复制的优点:

1.成熟的技术

2.更少的数据写入到Log files.当更新或者删除 影响很多行,这个导致更少的存储空间需要对于日志文件。

这也意者着从备份恢复可以迅速的完成

3.日志文件包含所有改变的语句,可以用于审计数据库

statement-based replication 的缺点

1. 语句是不安全的对于SBR,并不是所有修改语句(比如INSERT DELETE, UPDATE, and REPLACE statements) 

可以被复制使用基于语句复制。

任何不确定行为是很难被复制使用基于语句的,比如DML包含如下:

一个语句取决于一个UDF 或者存储过程 是不确定的,

因为这样的UDF或者存储程序或者依赖的因素返回的值不同于参数提供的值。

行格式复制,然而, 简单的复制UDF或者存储过程返回的值

DELEET 和UPDATE 语句使用一个LIMIT 子句没有一个ORDER BY 是不确定的

语句使用下面的函数不能被正确的复制使用基于语句选项:

    LOAD_FILE()

    UUID(), UUID_SHORT()

    USER()

    FOUND_ROWS()

    SYSDATE() (unless both the master and the slave are started with the --sysdate-is-now option)

    GET_LOCK()

    IS_FREE_LOCK()

    IS_USED_LOCK()

    MASTER_POS_WAIT()

    RAND()

    RELEASE_LOCK()

    SLEEP()

    VERSION() 

1. INSERT ... SELECT  需要大量的row-level locks 相比基于行的复制

2.UPDATE语句 需要一个表扫描(没有index是被使用在WHERE子句)必须锁住大量的行,相比基于行复制

3.对于InnoDB:一个INSERT 语句使用 AUTO_INCREMENT  堵塞其他不冲突的INSERT 语句

4.对于复杂语句,语句必须被评估和被执行在slave上在记录被更新或者插入前。

1.在基于行的复制, slave只需要修改影响的行,不是执行整个语句

2.如果这里有个错误在slave上评估的时候,特别是当执行复杂的语句,基于语句的复制可能缓慢的增加错误的幅度根据影响的行

3.存储过程执行相同的NOW()值作为调用语句,然而, 这是不正确的过程

Advantages of row-based replication 基于记录的复制的优点

所有的改变可以被复制,这是最安全的复制形式

注意:

 语句 更新信息在mysql 数据库 比如GRANT, REVOKE和触发器操作,存储函数(包含存储过程)

和事务 都被复制到slaves 使用基于语句的复制

对于语句比如CREATE TABLE ... SELECT ,一个CREATE 语句是生成一个表定义和复制使用基于语句复制,

记录插入时复制使用基于记录的格式。

这个技术是和很多书其他数据库管理系统相似

很少的row locks 是需要的在master上, 从而实现高并发,对于以下类型的语句:

    INSERT ... SELECT

    INSERT statements with AUTO_INCREMENT

    UPDATE or DELETE statements with WHERE clauses that do not use keys or do not change most of the examined rows. 

基于行的复制缺点:

RBR 可以产生更多以的数据 必须被记录,复制一个DML 语句(比如一个UPDATE或者DELETE 语句).

基于语句的复制只写语句到Binary log.

与之相反,  row-based replication 写每个changed 记录到每个binary log.

如果语句改变很多记录,基于行复制可能写很多的数据到binary log.

这是真的即使语句被回滚。

这也意味着从备份恢复需要更久的时间。此外, binary log 是锁住很多时间来写数据,

这个可能会导致并发问题。使用 binlog_row_image=minimal

mysql> show variables like '%binlog_row_image%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| binlog_row_image | FULL |
+------------------+-------+
1 row in set (0.00 sec) 2. 确定UDFs产生大量的BLOB 值 花费很长时间来复制基于行的格式相比基于语句的。 这是以为BLOB 列值是记录的,相比语句产生的数据 3.对于表使用MyISAM 存储引擎,一个很强的lock 是需要的在slave上对于INSERT 语句当应用他们作为 基于行的events 到binary log 相比应用它们作为语句。

17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication 基于语句和行的复制的优势和劣势的更多相关文章

  1. 17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication

    17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication 基于语句和基于行复制的优点和缺点: ...

  2. 17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 得到复制master binary log 位置:

    17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 得到复制master binary log 位置: 你需要master ...

  3. 17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标:

    17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标: 你需要master ...

  4. Vue 单页面应用 SEO SPA single page application advantages and disadvantages

    处理 Vue 单页面应用 SEO 的另一种思路 - muwoo - 博客园 https://www.cnblogs.com/tiedaweishao/p/7493971.html SPA网站SEO完美 ...

  5. Java基础知识强化之网络编程笔记17:Android网络通信之 使用Http的Post方式读取网络数据(基于HTTP通信技术)

    使用Http的Post方式与网络交互通信.Post方式需要向网络传输一部分数据,同时具有输入流和输出流. 详见:Android(java)学习笔记210:采用post请求提交数据到服务器(qq登录案例 ...

  6. 17.1.2 Replication Formats

    17.1.2 Replication Formats 复制格式 17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Bas ...

  7. 17.1.2?Replication Formats 复制格式:

    17.1.2?Replication Formats 复制格式: 17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Ba ...

  8. mha安装使用手册

    mha安装使用手册 注:目前mha最新的版本代码已经不放到google code网站了,而是放在github上,最新的版本为0.57,github链接如下: mha manager:https://g ...

  9. 涂抹mysql笔记-mysql复制特性

    <>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到 ...

随机推荐

  1. 盘点 Github 所用到的开源项目

    http://www.php100.com/html/it/mobile/2014/0401/6736.html 在致力于开源事业的同时,Github也使用一些非常优秀的开源项目的来打造自己的平台与服 ...

  2. mysql insert语句错误问题解决

    好久没有复习数据库了,竟然忘记了mysql中的关键字(保留字),导致今天一晚上都在查找sql语句错误,特此记录此错误,教训啊. 我在mysql数据库中有一个名为order 的表,啊啊啊啊啊,为啥我给他 ...

  3. 遇到autoreconf: not found

    sudo apt-get install autoconf automake libtool

  4. Web开发必备资源汇总[转]

    导读:原文来自< Best “must know” open sources to build the new Web>,译文由酷壳网陈皓整理编译< 开源中最好的Web开发的资源 & ...

  5. 记一次ios使用OAuth 2.0写的接口获取token的小错

    1.用ios原生网络请求的话,请求参数不能这样传 而要这样传 2.用afnetworking的话,要注意各个参数有没有错误,参数可以直接这样传

  6. Xamarin.iOS - 利用Settings插件与EAIntroView制作App的欢迎界面

    Xamarin.iOS - 利用Settings插件与EAIntroView制作App的欢迎界面 关于欢迎界面 很多App第一次启动都会有一个欢迎界面,欢迎界面往往决定这用户对App的第一映像,所以欢 ...

  7. 我眼中真正优秀的CTO

    该文转自“肉饼铺子”.作者robbin是前JavaEye网站的创始人,TOPITCLUB互联网俱乐部发起人.  原文链接 现在进入正题,最近几个月,不断有人找我推荐CTO人选,这两年互联网创业和创投实 ...

  8. UVA 11464 Even Parity(部分枚举 递推)

    Even Parity We have a grid of size N x N. Each cell of the grid initially contains a zero(0) or a on ...

  9. Codevs 3729 飞扬的小鸟

    飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...

  10. hdu 1286 找新朋友 (欧拉函数)

    Problem Description 新年快到了,"猪头帮协会"准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的 ...