zoukankan      html  css  js  c++  java
  • MySQL二进制日志文件Binlog的三种格式以及对应的主从复制中三种技术

    二进制日志文件Binlog的格式主要有三种:

    1、Statement:基于SQL语句级别的Binlog,每条修改数据的SQL都会保存到Binlog里面。

    2、ROW:基于行级别,每一行数据的变化都会记录到Binlog里面,但是并不记住原始SQL语句,因此它会记录的非常详细,日志量也比statement格式记录的多得多。在主从复制中,这样的Binlog格式不会因存储过程或触发器原因造成主从数据不一致的问题。

    3、Mixed:混合Statement和Row模式。

    在mysql5.7中,默认是ROW模式记录

    mysql> show variables like 'binlog_format%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | binlog_format | ROW   |
    +---------------+-------+
    1 row in set (0.00 sec)

    上面的三种复制模式也对应了MySQL的三种复制技术:

    binlog_format=Statement:基于SQL语句的复制,在MySQL5.1.4之前的版本都是基于SQL语句的复制

    binlog_format=ROW:基于行的复制

    binlog_Mixed:混合复制模式,基于行的复制和基于SQL语句的复制。

    总结:在MySQL的主从复制中,主库的Binlog_format设置为ROW格式比Statement格式更能保证从库数据的一致性,只是ROW格式下的Binlog日志可能会增大非常多,在设置时需要考虑磁盘空间问题。

  • 相关阅读:
    HDU2222 自动机(学习中)
    POJ 2289(多重匹配+二分)
    POJ 1486二分图的必要边
    二分图
    2015陕西 并查集
    Hdu2680 最短路
    函数调用约定
    用01随机函数构造[a,b]整数范围随机数
    hello
    Ubuntu 16.04 install R language
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10212950.html
Copyright © 2011-2022 走看看