binlog日志是什么

MySQL的架构可以分为server层与引擎层,引擎层类似于插件像是InnoDB等,binlog就是由server层提供的日志服务。

binlog的格式

binlog支持的格式主要有statement,row,mixed三种。

statement

statement中存储的是SQL语句,这样的存储方式更加节省空间,但是也会带来相应的问题。缺点:由于存储的是SQL语句所以在主从同步时很可能会有不同的执行结果导致主从数据不一致,例如delete时语句选择的索引不同等。

row

row格式中存储的是数据本身,正因为如此占用的空间更多,但是能够保证数据的准确性。

mixed

mixed模式下,当statement格式中的语句存在导致主从数据不一致的风险时则会自动切换为row。可以通过show warning查看。

对三种日志格式的选择

row格式存储的时数据本身,所以在恢复数据时就很方便。statement虽然占用空间少但是一般的生产环境中所采用的都是主从结构,因此数据的一致性尤其重要。

常用命令

查看binlog命令

查看当前使用的binlog格式

show global variables like '%binlog_format%';

查看第一个binlog文件内容show binlog events;查看指定文件内容show binlog events in 'mysql.000002';查看正在写入的文件show master status\G获取binlogshow binary logs;

设置binlog格式命令

设置当前库binlog格式set binlog_format='statement/row/mixed';设置全局binlog格式

set global binlog_format='statement/row/mixed';
作者:|膝盖中了箭|,原文链接: https://segmentfault.com/a/1190000043585754

文章推荐

APP中RN页面渲染流程-ReactNative源码分析

Cypress 踩坑记 - DOM 遮挡

java中this的内存原理以及成员变量和局部变量

JavaWeb 中 Filter过滤器

Linux 内存管理 pt.1

django使用多个数据库实现

线上诊断神器-arthas基本应用

Redis - 底层数据结构

Vue2数据驱动渲染(render、update)

深入理解 Python 虚拟机:字节(bytes)的实现原理及源码剖...

Python EasyOCR 文字识别

配置中心Nacos(服务发现)