基于语句级的复制
binlog=statement
 
优点:
(1)binlog文件较小。
(2)日志是包含用户执行的原始SQL,方便统计和审计。
(3)出现最早可binlog、兼容较好。
(4)binlog方便阅读,方便故障修复。
 
缺点:
存在安全隐患,可能导致主从不一致。
对一些系统函数不能准确复制或是不能复制:load file()、uuid()、user()、found rows()、sysdate()。
 
 
基于行级的复制
binlog=row
优点:
(1)相比statement更加安全的复制格式。
(2)在某些情况下复制速度更快(SQL复杂、表有主键)。
(3)系统的特殊函数也可以复制。
(4)更少的锁。
 
缺点:
(1)binary log比较大(MySQL 5.6 支持binlog row image)。
(2)单语句更新/删除的表执行过多,会形成大量binlog。
(3)无法从binlog看见用户执行的SQL(MySQL5.6增加一个新的Event binlog_rw_query_log_event记录用户的query)。
 
基于混合级复制
1.混个使用ROW和statement格式,对于DDL记录会stement,对于TABLE里的行操作记录为ROW格式。
2.如果使用innodb表,事务级别使用了read commeitted or read uncommitted 日志级别只能使用row格式。
3.单在使用row格式中DDL语句还是会记录成statement格式。
4.mixed格式,那么在以下几种情况会自动将binlog的模式由SBR模式改成RBR。
5.当DML语句更新一个NDB表时。
6.当函数中包含UUID()时。
7.2个及以上包含AUTO_INCREMENT字段的表被更新时。
8.行任何INSERT DELAYED语句时。
9.用UDF时。
10.视图中必须要求使用RBR时,例如创建视图是使用了UUID()函数。
 
采用哪种复制格式
生产环境里面全部采用 row格式。
 

MySQL复制格式小结的更多相关文章

  1. MySQL复制相关参数详解

    MySQL复制相关参数详解 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.复制相关系统变量 1>.server_id 是必须设置在master和每个slave上的唯一标 ...

  2. MYSQL 复制详解

    MySql 复制介绍 MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况 下复制是异步进行的,从库也不需要一直连接到主库来同步数据 MySQL复制的数据 ...

  3. MySQL复制进阶

    Ⅰ.背景 搭建MySQL复制环境非常简单 你的系统是否也是像我之前那么搭建的呢? 那么,你的复制系统是否出现过以下的情况呢? 复制报错,例如:1062,1032 主从数据不一致 Ⅱ.真正高可靠复制环境 ...

  4. MySQL 复制 - 性能与扩展性的基石 1:概述及其原理

    1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步. 接下来,我们将从复制概述及原理.复制的配置. ...

  5. 31.Mysql复制

    31.Mysql复制复制是指将主数据库的DDL和DML操作通过二进制日志传到从数据库上,然后在从数据库上对重做日志,从而使从库与主库保持同步.Mysql支持一台主库同时向多台从库复制,从库也可以作为其 ...

  6. MySQL 复制 - 性能与扩展性的基石:概述及其原理

    原文:MySQL 复制 - 性能与扩展性的基石:概述及其原理 1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他 ...

  7. 12-MySQL DBA笔记-MySQL复制

    第12章 MySQL复制 本章将为读者讲述MySQL的复制技术,首先,介绍最基础的主从复制,它是其他所有复制技术的基础,接着再为读者讲述各种复制架构的搭建,最后,列举了一些常见的复制问题及处理方式.复 ...

  8. 浅析MySQL复制

    MySQL的复制是基于binlog来实现的. 流程如下 涉及到三个线程,主库的DUMP线程,从库的IO线程和SQL线程. 1. 主库将所有操作都记录到binlog中.当复制开启时,主库的DUMP线程根 ...

  9. 理解MySQL——复制(Replication)

    1.复制概述 1.1.复制解决的问题数据复制技术有以下一些特点:(1)    数据分布(2)    负载平衡(load balancing)(3)    备份(4)    高可用性(high avai ...

随机推荐

  1. prettyJson V7.1 使用

    头文件 #include "document.h" #include "prettywriter.h" #include "filereadstrea ...

  2. 【hdu 1068】Girls and Boys

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=1068 [Description] 有n个人,一些人认识另外一些人,选取一个集合,使得集合里的每个人 ...

  3. 洛谷 P3955 图书管理员【民间数据】

    P3955 图书管理员[民间数据] 题目背景 数据已再次修正 (既然你们不要前导0我就去掉了) 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的 ...

  4. android插件式开发资料整理

    1.DL : Apk动态载入框架 2.android中的动态载入机制

  5. [TS] Parse a string to an integer

    A common interview question is to write
 a
function
that
converts
 a
 string
into
an
integer e.g. &q ...

  6. 含有打印、统计DataGridView(2)

    /// <summary>        /// 导出数据到Excel                /// </summary>        public void loa ...

  7. jquery中$(dom).each()和$(dom).length的使用

    1.$(dom).each();在dom处理上用的比较多. $(selector).each(function(index,element){ //selector会遍历当前页面里所有匹配的jquer ...

  8. 怎样让IE支持自己定义协议

    浏览QQ空间的时候发现,仅仅要在IE地址中输入象一下这样的形式的地址. tencent://Message/?Uin=251464630&websiteName=qzone.qq.com&am ...

  9. ejs模板引擎的使用

    引入ejs.min.js 创建模板,以<%=jsCode%>包裹起来其余的html和html结构一样 focusTemplateData是模板使用的数据,使用$.each()方法遍历绑定数 ...

  10. C++的模板template

    模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数.返回值取得任意类型. 模板是一种对类型进行参数化的工具: 因此,使用模板的目 ...