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日志可能会增大非常多,在设置时需要考虑磁盘空间问题。

  • 相关阅读:
    vue语法 `${ }` (模版字符串)
    Apache HttpClient工具类
    JS —— 数组去重
    HTML5——新增的API
    HTML5——新特性
    HTML5——Svg
    HTML5——多媒体(Audio音频、Video视频)
    CSS3——transform
    CSS3——animation中的属性--steps
    CSS3——动画transition、animation
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10212950.html
Copyright © 2011-2022 走看看