zoukankan      html  css  js  c++  java
  • java面试一日一题:说下mysql中的binlog

    问题:请讲下mysql中的binlog

    分析:该问题主要考察对mysql中binlog的理解及使用场景?

    回答要点:

    主要从以下几点去考虑,

    1、什么是binglog?

    2、binlog的使用场景是什么?

    在mysql中经常听到binlog,所谓binlog指的是二进制日志文件,用来记录mysql中的DDL、DML语句。该文件有三种记录的格式或者说工作模式,

    row  记录每一行数据被修改的情况,优点是清晰的记录每一行数据被修改的细节,缺点是binlog日志文件过大;

    statement  记录每一行数据被修改的sql,优点是不需要记录每一行数据的修改情况,文件大小没有row的那么大,缺点容易出现主从不一致;

    fixed  是row和statement两种方式结合。

    binlog经常用在主从复制中,在主节点和从节点之间拷贝的内容就是binlog文件中的内容,主节点在开启binlog后,在主从复制过程中通过网络把主节点的binlog文件传输到从节点,从节点会执行接收到的binlog文件中的内容,达到主从数据一致的效果。在实际生产环境中,经常会出现主从数据不一致的情况,主要有以下原因,

    1、网络延迟;

    2、写主节点,读从节点,由于从节点要同步主节点的binlog,会因为时间前后关系,造成不一致;

    要解决主从不一致的情况,可以有下面的方式供参考,

    1、主从复制配置成半复制,即要等到从节点成功执行后主节点再返回写成功;

    2、从节点只做备份使用,强制读主节点;

    3、程序允许一定时间的数据不一致情况;

    一个爱写文章的程序员,欢迎关注我的公众号“北漂程序员”。我有故事,你有酒吗
  • 相关阅读:
    Cannot modify header information
    jQuery 基本实现功能模板
    PHP会话处理相关函数介绍
    [JavaScript]plupload多图片上传图片
    Thinkphp 上传图片
    MongoDB最新版本3.2.9下载地址
    在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
    在Visual Studio上开发Node.js程序
    NTVS:把Visual Studio变成Node.js IDE 的工具
    微信批量关注公众号、推送消息的方法!
  • 原文地址:https://www.cnblogs.com/teach/p/14691874.html
Copyright © 2011-2022 走看看