MYSQL之binlog详解优缺点

MYSQL之binlog详解

一、什么是binlog?

binlog,即二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)

二、binlog模式

binlog有三种格式:Statement、Row以及Mixed。–基于SQL语句的复制(statement-based replication,SBR)
–基于行的复制(row-based replication,RBR)
–混合模式复制(mixed-based replication,MBR)

三、各种模式的优缺点

1.Statement模式
每一条会修改数据的sql都会记录在binlog中(实际输入什么就会记录什么)优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能缺点:由于记录的只是执行语句,为了这些语句能在slave上正确运行,因此还必须记录每条语句在执行的时候的一些相关信息,以保证所有语句能在slave得到和在master端执行时候相同的结果。另外mysql的复制,像一些特定函数功能,slave可与master上要保持一致会有很多相关问题

相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除,alter表等操作,ROW格式会产生大量日志,因此在考虑是否使用ROW格式日志时应该跟据应用的实际情况,其所产生的日志量会增加多少,以及带来的IO性能问题。

2.Row模式
5.1.5版本的MySQL才开始支持row level的复制,它不记录sql语句上下文相关信息,仅保存哪条记录被修改(实际改了什么就记录什么)优点: binlog中可以不记录执行的sql语句的上下文相关的信息,仅需要记录那一条记录被修改成什么了。所以rowlevel的日志内容会非常清楚的记录下每一行数据修改的细节。而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容

新版本的MySQL中对row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录,如果sql语句确实就是update或者delete等修改数据的语句,那么还是会记录所有行的变更

3.Mixed混合模式
从5.1.8版本开始,MySQL提供了Mixed格式,实际上就是Statement与Row的结合在Mixed模式下,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种

四、常见相关命令

1.查看当前使用的binlog模式
show variables like 'binlog_format';2.查看是否开启
show variables like 'log_bin';3.查看binlog列表
show binary logs;4.查看当前正在写入的binlog文件
show master status;5.查看master上的binlog
show master logs;6.查看指定binlog文件的内容
show binlog events in 'mysql-bin.000002'7.删除binlog
- 使用linux命令删除binlog文件
- 设置binlog过期时间
select @@binlog_expire_logs_seconds/60/60/24;    #默认30天清理一次,按秒计算
select @@expire_logs_days;    #按天计算,手动设置,两者建议同时开启一个即可-手动删除
purge binary logs to 'binlog.000006';   #删除06之前的文件
PURGE BINARY LOGS BEFORE '2019-04-04 22:46:26';   #根据文件时间进行清理reset master;    //删除master的binlog
reset slave;    //删除slave的中继日志

五、binlog扩展

当停止或重启服务器时,服务器会把日志文件记入下一个日志文件,Mysql会在重启时生成一个新的日志文件,文件序号递增;
此外,如果日志文件超过max_binlog_size(默认值1G)系统变量配置的上限时,也会生成新的日志文件(在这里需要注意的是,如果你正使用大的事务,二进制日志还会超过max_binlog_size,不会生成新的日志文件,事务全写入一个二进制日志中,这种情况主要是为了保证事务的完整性);
日志被刷新时,新生成一个日志文件。
flush logs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型平台后端开发(xiaomi)

文章目录 算法题 算法题 1 三数之和 (注意去重的边界条件,过几天再刷几次) 2 长度最小的子数组 (代码随想录题目,滑动窗口) 3 用链表实现栈 package mainimport ("errors""fmt" )// Node 定义链表节点 type…

记录计全支付切换到RabbitMQ时启动报错的问题

记录计全支付切换到RabbitMQ时启动报错的问题 首先在application.yml中切换到RabbitMQ配置安装RabbitMQ、Erlang、延时插件 rabbitmq_delayed_message_exchange,延迟插件必装 首先在application.yml中切换到RabbitMQ配置 # 第一处rabbitmq:addresses: 127.0.0.1:56…

java安全可控、安可、国产信创、国产化有哪些替代品【完整版本】100%兼容测试

安全可控、安可、 国产信创、国产化 java安全可控、安可、国产信创、国产化有哪些替代品【完整版本】100%兼容测试 系统、芯片、CPU、缓存、数据库、中间件、负载均衡、WEB服务器、防火墙、消息队列 开发 角色: 前端☑ 后端☑ 测试□ 数据库☑ 产品✅ UI设计□ 是否熟悉国产…

python 合并 pdf

from pypdf import PdfMergerpdfs [file1.pdf, file2.pdf, file3.pdf, file4.pdf]merger PdfMerger()for pdf in pdfs:merger.append(pdf)merger.write("result.pdf") merger.close()参考 https://stackoverflow.com/questions/3444645/merge-pdf-files

Winform自定义控件 —— 开关

在开始阅读本文之前,如果您有学习创建自定义控件库并在其他项目中引用的需求,请参考:在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 由于 Winform 框架并…

深入探索Jetpack Compose:大前端式客户端开发实战

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

(二)Jetpack Compose 布局模型

前文回顾 (一)Jetpack Compose 从入门到会写-CSDN博客 首先让我们回顾一下上一篇文章中里提到过几个问题: ComposeView的层级关系,互相嵌套存在的问题? 为什么Compose可以实现只测量一次? ComposeView和…

还拿B端设计经验,设计政务类系统,驴唇不对马嘴啦。

一、什么是政务类系统,涉及哪些领域 政务类系统是指用于政府机构或政府部门进行管理和运营的信息化系统。政务类系统的目的是提高政府工作效率、优化公共服务、加强政府与公民之间的互动和沟通。 政务类系统通常涵盖了各个方面的政府工作,包括但不限于以…

Media Encoder 2024 for Mac:专业的音视频编码神器

Media Encoder 2024 for Mac,作为Mac用户的专业音视频编码工具,凭借其强大的功能和用户友好的界面,深受专业人士的喜爱。它支持将各种格式的音视频素材转换为多种流行格式,如MP4、MOV、AVI等,满足不同的播放和发布需求…

计算机网络-DHCPv6基础

前面我们学习了IPv6地址可以通过手动配置、无状态自动配置、DHCPv6配置,这里简单学习下DHCPv6的知识点。 一、DHCPv6概述 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是一种网络协议,设计用于IPv6网络环境中自动为网络设备分配必要的配置信…

NIOS II实现LED流水灯以及串口输出(DE2-115开发板)

NIOS II实现LED流水灯以及串口输出(DE2-115开发板) 前言什么是Qsys?什么是NIOSII?注意事项1、管脚配置2、配置NIOSII时的连接3、注意中断配置好后是这样的4、注意名称的配置5、设置双功能引脚 NIOS II的报错代码以及效果演示流水灯输出到电脑串口助手 …

笔记本电脑忘记开机密码怎么办?不需重装系统,重置开机密码

笔记本电脑忘记开机密码,重置开机密码方法 这里记录个方法,亲测有效。我的电脑版本是Windows11,21H2。 步骤1:打开疑难解答界面 方式1:按住Shift键,然后重启电脑。我电脑使用这个方法无效。 方式2&#…

盘点2024年自动猫砂盆品牌,哪个牌子自动猫砂盆比较好?

养猫之路漫漫,无论是新手还是老手,都需要细心照料猫咪的每一个需求。特别是在选择自动猫砂盆这个问题上,更是让人头疼不已。因为每只猫咪的喜好和习惯都不同,如果猫砂盆选得不对,猫咪可能会拒绝使用,导致家…

计算机视觉全系列实战教程:(一)概述

1.图像基本概念 (1)数字图像 在计算机视觉中,一般是以数字图像作为基础,所谓数字图像,就是一种以二维数组形式表示的图像,本质就是一个二维数组。 (2)图形 用数学规则产生的或具…

复制即用!纯htmlcss写的炫酷input输入框

一般我们写css样式都要用样式库,但是嫌麻烦,如果能找到现成的内容复制上去就很香了,下文是笔者觉得好看的纯html&css写的样式,可以直接复制到Vue等内,十分方便。 input组件 1) 下面这个很推荐&#…

南京中科微Si24R2E:低功耗2.4GHz有源RFID SoC单发射芯片+7dBm可调输出功率,节省应用成本

Si24R2E是针对有源RFID市场设计的低功耗、高性能的2.4GHz标签系统的SoC单芯片,集成嵌入式2.4GHz无线射频发射器模块、128次可编程NVM存储器模块以及自动发射控制器模块等。 Si24R2E芯片主要特性: 工作在2.4GHz ISM频段 内置128次可编程NVM存储器 具有…

男士内裤有什么牌子比较好?公认男士内裤口碑最好的品牌

现在市面上关于男士内裤有着三角平角两种设计,而在材质方面还有莫代尔、纯棉、冰丝等等各种不同的材质分类,另外还有各种不同的男士内裤品牌。 所以大家在选男士内裤都觉得十分麻烦而且耗费时间,那么今天我就来给大家总结分析一下男士内裤应…

Python程序设计 内置模块 系统操作

系统操作 1. os 模块 Python 的 os 模块封装了常见的文件和目录操作,本文只列出部分常用的方法,更多的方法可以查看官方文档。 1.1 os.path常见用法 os.path 模块是跨平台的,即使不打算在平台之间移植自己的程序也应该用 os.path&#xf…

职责链模式

职责链模式 文章目录 职责链模式什么是职责链模式通过示例了解职责链模式 什么是职责链模式 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请…

微软中国 AI 团队搬至美国?可解决家属签证

多位网友爆料称,微软中国数百名员工收到公司邮件,询问是否愿意迁移至美国、澳大利亚、爱尔兰等国家工作。公司将负责亲属签证问题,以Azure云平台的AI团队为主,员工需要在6月7日前给出答复。 有微软员工表示情况属实,这…