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
基于语句和基于行复制的优点和缺点:
每种 binary logging 格式有优势和缺点,对于很多用户,
混合的复制格式 应该提供最好的数据完整性和性能的最佳组合。
如果,但是, 你需要利用基于语句的功能或者基于行的功能 当执行某些任务,
你可以使用信息在这个章节, 它提供了一个相对的优点和缺点,以确定哪一个适合你
基于语句的复制的优点:
1. 提供的技术 在MySQL 3.23z种已经出现
2.较少的数据被写入到log files,当更新或者删除影响很多行的时候,这个结果是更少的存储空间需要用于log files.
这也意味着做备份和恢复备份可以更快的完成
Log files 包含所有的语句,做出的任何改变,因此可以用于审计数据库
Disadvantages of statement-based replication 基于语句的复制的缺点:
语句对于SBR是不安全的, 不是所有的语句修改数据(比如 INSERT DELETE, UPDATE, and REPLACE statements) 可以被复制
使用基于语句的复制。 任何非确定的行为是很难复制当使用基于语句的复制。
比如这样的DML 语句如下:
一个语句依赖 一个UDF或者存储过程是不确定的,因为 这样一个UDF返回的值 或者存储过程或者取决于因数意外的其他因数
(基于行的复制,然而, 简单的复制UDF返回的值或者存储过程, 因此它影响表的记录和数据是master和slave相同的
DELETE 和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()
然而, 所有其他的函数是可以正确复制的 使用基于语句的复制,包含NOW() 等等
语句不能被正确复制使用基于语句的复制是被记录一个警告如下:
[Warning] Statement is not safe to log in statement format.
一个类似的警告,也会向客户端发出,客户端可以通过使用SHOW WARINGS
1.INSERT ... SELECT 需要大量的row-level locks 相比基于行的复制
2.UPDATE 语句 需要一个表扫描(因为没有索引是用于WHERE 子句)必须锁住大量的行 相比基于行的复制
3.对于 InnoDB: 一个INSERT 语句使用 AUTO_INCREMENT 锁住其他不冲突的插入语句
4.对于复杂的语句,语句 必须评估和执行在slave上 在记录被更新或者插入。
在基于行的复制, slave 只修改影响的行,不会执行整个语句
5. 如果有一个错误在出现在slave上评估的时候,特别是当执行复杂的语句,
基于语句复制可能会缓慢增加错误的范围 更具受影响的行。
存储函数执行相同的NOW() 值当调用语句,然而,这不是正确的存储过程。
Advantages of row-based replication 基于行的复制:
所有的变化都可以被复制,这是最安全的复制形势。
注意:
语句在mysql 数据库中的更新,比如GRANT,REVOKE 和操作触发器,存储过程,
和视图 是都会复制到slave 使用基于语句的复制。
对于语句比如 CREATE TABLE ... SELECT, 一个CREATE 语句是生成从表定义和复制使用基于语句的格式,
当记录插入是被复制使用基于行的
这个技术是和很多其他的数据管理系统类似,对其他系统转移到MySQL
更少的锁是被需要在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.
UPDATE or DELETE statements 在WHERE 子句不使用keys或者不改变检验的行
需要更少的锁 在Slave上对于 INSERT, UPDATE, or DELETE statement.
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 基于语句和行的复制的优势和劣势
17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication 基于语句和行的复制的优势和劣势 每 ...
- Vue 单页面应用 SEO SPA single page application advantages and disadvantages
处理 Vue 单页面应用 SEO 的另一种思路 - muwoo - 博客园 https://www.cnblogs.com/tiedaweishao/p/7493971.html SPA网站SEO完美 ...
- 17.1.2 Replication Formats
17.1.2 Replication Formats 复制格式 17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Bas ...
- 17.1.2?Replication Formats 复制格式:
17.1.2?Replication Formats 复制格式: 17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Ba ...
- mha安装使用手册
mha安装使用手册 注:目前mha最新的版本代码已经不放到google code网站了,而是放在github上,最新的版本为0.57,github链接如下: mha manager:https://g ...
- [MySQL Reference Manual]17 Group Replication
17 Group Replication 17 Group Replication 17.1 Group Replication后台 17.1.1 Replication技术 17.1.1.1 主从复 ...
- sentence patterns
第四部分 推理题 1.世界上每个角落的每个人都有立场,都有背景,都有推理性,能推理出一个人语言的真意,才成就了真正的推理能力: 2.换言之,如果你能通过一个人的说话推理出其身份职业,你的推理能 ...
- Searching External Data in SharePoint 2010 Using Business Connectivity Services
from:http://blogs.msdn.com/b/ericwhite/archive/2010/04/28/searching-external-data-in-sharepoint-2010 ...
- Data manipulation primitives in R and Python
Data manipulation primitives in R and Python Both R and Python are incredibly good tools to manipula ...
随机推荐
- Excel表格中汉字转拼音
一.使用“实用汉字转拼音V4.8” 软件 下载地址http://www.orsoon.com/soft/4413.html 或则百度 很多的 二.Excel自定义函数方法: 1.启动Excel 200 ...
- window权限 及c++实现 【网摘】(转)
from : http://blog.csdn.net/zipper9527/article/details/6256459 http://www.lihuasoft.net/article/show ...
- 第三条:私有化构造器或者枚举类型强化Singleton属性
1.5版本之前,我们通常实现单例模式有两种方式: 两种方法前提都是私有化构造器,然后通过不同的方式获取对象. 第一种:通过公共的静态变量获取 public class Elivs{ // 私有化构造器 ...
- hdu 2824The Euler function
题目链接 快速求出a到b之间所有数的欧拉函数. 一个一个求肯定是不行的, 我们知道欧拉函数的公式为phi(n) = n*(1-1/i1)*(1-1/i2).......i1, i2为素因子. 那么我们 ...
- DGIM
http://blog.liulixiang.info/2011/04/05/dgim%E7%AE%97%E6%B3%95%EF%BC%9A%E4%BC%B0%E8%AE%A1%E6%BB%91%E5 ...
- 苹果iPhone不能判断红外发射管的好坏
用手机来检测红外发射管好坏是目前比较常用的方法.实际操作比较简单,就是按照红外发射管的工作电压给发射管接上电源后,把手机的摄像头对着红外发射管就能看出好坏了.由于红外线是肉眼看不见的,如果不通过手机摄 ...
- pyqt中使用matplotlib绘制动态曲线 – pythonic
一.项目背景: 看了matplotlib for python developers这本书,基本掌握了在pyqt中显示曲线的做法,于是自己写一个. 二.需求描述: 1)X轴显示时间点,显示长度为1分钟 ...
- android -上传文件到服务器
android上传文件到服务器 重点:最好是设置好content-type这些参数的配置! package com.spring.sky.image.upload.network; ...
- VS2010/MFC对话框:颜色对话框
颜色对话框 在上一节中为大家讲解了字体对话框的使用方法,熟悉了字体对话框,本节继续讲另一种通用对话框--颜色对话框. 颜色对话框大家肯定也不陌生,我们可以打开它选择需要的颜色,简单说,它的作用就是用来 ...
- TCP的核心系列 — SACK和DSACK的实现(一)
TCP的实现中,SACK和DSACK是比较重要的一部分. SACK和DSACK的处理部分由Ilpo Järvinen (ilpo.jarvinen@helsinki.fi) 维护. tcp_ack() ...