美文网首页
mysql进阶-binlog应用场景与原理剖析

mysql进阶-binlog应用场景与原理剖析

作者: 木语沉心 | 来源:发表于2020-11-27 16:44 被阅读0次

一 介绍binlog

  • binlog, 即二进制日志文件,他记录了MySQL所有数据的变更,并以二进制的形式存储在磁盘上

二 binlog模式

binlog有三种模式:ROW(行模式), Statement(语句模式), Mixed(混合模式)
mysql默认是Statement, 推荐使用ROW

Statement
  • 优点:记录的是sql语句,清晰易读,日志文件小 节约io 提高性能
  • 缺点:准确性差,对一些系统函数不能准确复制或不能复制, 如: NOW(). UUID()
ROW
  • 优点:记录的是每行的实际数据变更,能保证数据准确性
  • 缺点:产生的日志文件大,比较占用IO
Mixed
  • 优点:准确性强,文件大小适中
  • 缺点:有可能发生主从不一致问题

引用场景

1 基于binlog的主从复制
流程图.png

主要分为3个步骤:
第一步:master在每次准备提交事务完成数据更新前,将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log event,简称event)
第二步:slave启动一个I/O线程来读取主库上binary log中的事件,并记录到slave自己的中继日志(relay log)中。
第三步:slave还会起动一个SQL线程,该线程从relay log中读取事件并在备库执行,从而实现备库数据的更新。

2 数据库读写分离 (一主多从)

所有的更新操作都通过Master(Insert、Update、Delete等),而查询操作(Select等)都在Slave上进行。由于存在多个slave,所以我们可以在slave之间做负载均衡。通常业务都会借助一些数据库中间件,如tddl、sharding-jdbc等来完成读写分离功能。

image.png
3 数据恢复
4 数据最终一致性
image.png
增量索引 | 可靠消息 | 缓存一致性

相关文章

  • mysql进阶-binlog应用场景与原理剖析

    一 介绍binlog binlog, 即二进制日志文件,他记录了MySQL所有数据的变更,并以二进制的形式存储在磁...

  • Mysql binlog应用场景与原理深度剖析

    本文深入介绍Mysql Binlog的应用场景,以及如何与MQ、elasticsearch、redis等组件的保持...

  • 数据库

    1.mysql binlog的底层原理分析

  • MySQL binlog原理及应用

    微信公众号:云计算通俗讲义 持续输出技术干货,欢迎关注! 01概述 Binlog它记录了所有的DDL和DML(除了...

  • cannal使用

    a. canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,建...

  • MySQL搭建主从复制

    1.1 主从复制原理 1.2 binlog介绍和relay日志 查看binlog日志: mysql****bin...

  • MySQL之binlog底层原理分析

    最近在准备看MySQL相关的内容,简单的整理一下binlog的原理,加深理解。 binlog基本认识 MySQL中...

  • MySQL binlog 原理

    一、介绍 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)...

  • 12、观察者模式

    原理及应用场景剖析 观察者模式(Observer Design Pattern)也被称为发布订阅模式(Publis...

  • 阿里开源Canal--②快速入门

    1、mysql初始化 a.canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的bi...

网友评论

      本文标题:mysql进阶-binlog应用场景与原理剖析

      本文链接:https://www.haomeiwen.com/subject/cecziktx.html