replication format(日志记录格式)
来源:互联网 发布:淘宝返现软件哪个好 编辑:程序博客网 时间:2024/05/15 16:50
在mysql5.6复制中,binlog的记录格式有3种:
基于语句的格式(statement)--默认方式
基于行的格式(row)
混合格式( mixed)
1.基于语句的复制(binlog_format = statement)
日志中的记录都是已sql语句的形式记录,备机中在进行应用日志的时候,相当于在数据库中重新执行一遍语句。
优点:
2.基于行的复制(binlog_format = row)
日志中的直接记录相关表中行的变更信息。
优点:
3.混合模式
默认采用statement的方式记录日志,当遇到一下情况时会切换到row方式记录日志
指定日志记录格式,修改/etc/my.cnf中添加
1.基于语句:binlog_format = statement
2.基于行记录:binlog_format = row
3.混合模式:binlog_format = mixed
参考文档:http://dev.mysql.com/doc/refman/5.6/en/replication-formats.html
基于语句的格式(statement)--默认方式
基于行的格式(row)
混合格式( mixed)
1.基于语句的复制(binlog_format = statement)
日志中的记录都是已sql语句的形式记录,备机中在进行应用日志的时候,相当于在数据库中重新执行一遍语句。
优点:
- 记录的日志量少
- 由于日志中记录了sql语句,因此可以用来对数据库进行审计工作
- 在自定义的函数和存储过程中,如果结果集不是确定性的(nondeterministic),在主节点和备节点调用的过程中可能会造成结果不一致
- 如果使用未包含order by的排序分页(limit)修改删除操作,可能会造成主备节点数据不一致
- 相关的系统函数无法正常的运行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()
- 语句会比基于行的格式占用更多的锁
- 批量sql语句执行的时候可能会比基于行的格式执行效率满(因为sql语句必须全部重新执行一般,而基于行的格式只需要记录更改行就行)
2.基于行的复制(binlog_format = row)
日志中的直接记录相关表中行的变更信息。
优点:
- 记录了数据库中的更改信息,是最安全的记录方式
- 比基于语句的格式需求的数据库锁更少(提高数据库的并发)
- 由于日志是按照行的更改来进行记录,所以记录的日志量会比基于statement的要大
- 确定性结果集的UDF如果包含大数据格式,记录的日志量也会比基于statement 的要大
- 无法通过日志来确定数据更改是通过哪儿条语句执行的,因此无法审计
- 对于MyISAM存储引擎而言,insert语句没有基于statement的并发性好
3.混合模式
默认采用statement的方式记录日志,当遇到一下情况时会切换到row方式记录日志
- 使用函数uuid(),found_rows(),row_count(),user(),current_user(),current_user,load_file()
- 调用表中的auto_increment列
- 视图下面的基表可能调用row格式记录
- 在非事务表中执行insert delayed
- 在使用临时表的会话中使用基于row的方式(注:mysql会将该会话中的子语句标记为unsafe,直到该会话涉及到的临时表删除。row格式不记录临时表的日志信息)
指定日志记录格式,修改/etc/my.cnf中添加
1.基于语句:binlog_format = statement
2.基于行记录:binlog_format = row
3.混合模式:binlog_format = mixed
参考文档:http://dev.mysql.com/doc/refman/5.6/en/replication-formats.html
0 0
- replication format(日志记录格式)
- 【Python】日志格式logging format
- 自定义nginx日志记录格式
- format格式
- Mysql不同主从格式(Replication Formats)的区别
- String.Format格式说明 (1)
- String.Format格式说明 (2)
- c# 的复合格式字符串(Format)
- 调试信息格式(Debugging Format)简介
- 调试信息格式(Debugging Format)简介
- VCF (Variant Call Format)格式详解
- Oracle格式模型(Format Models)
- Django-restframework30 Format suffixes(后缀格式)
- Filter(记录日志)
- 日志记录(log4j)
- IIS W3C格式日志中记录的字段及说明
- 统一日志的记录格式,用宏调用printf
- 使用Log4j来记录日志-PatternLayout和格式修饰符
- Pro Android学习笔记(一六三):联系人API(6):联系人详细信息
- HDU 4135 Co-prime (容斥入门)
- codefirst的一个总结
- PyQt5学习笔记06----Qt Designer自定义信号emit及传参
- mysql排序
- replication format(日志记录格式)
- 2015百度实习机试题(两道在线编程)
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
- Flume NG 简介及配置实战
- hiredis api 介绍
- Android编译系统参考手册
- 【笔记,待修改】关于设计模式的总结
- OC语法--协议protocol,代理设计模式概念
- jdk动态代理支持