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、程序允许一定时间的数据不一致情况;
感谢分享、关注、收藏。公众号:【良工说技术】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2020-04-22 mybatis源码分析:Mapper接口是什么
2020-04-22 mybatis源码配置文件解析之二:解析settings标签