当前位置:网站首页>mysql中的三大日志
mysql中的三大日志
2022-08-10 22:32:00 【木小同】
redoLog
redoLog是InnoDB引擎特有的日志,每次操作的时候,都会先写入redoLog日志。其中记录的是,在某个时间,对哪些数据页中的哪些数据做了什么样的操作,修改了什么值。这个日志是偏物理性质的。
只要这个日志写入之后,就不怕后续操作的时候发送异常的情况,因为这个日志可以继续之前的操作。
并且,redoLog日志是在一块固定的空间中循环写入的,也就是说,当存储redoLog日志的地方不够的话,最新的日志会覆盖最早的日志。
binLog
binLog是server层的日志,每当有数据更新操作的时候,会写入这个日志。记录哪条数据id多少,修改了什么值,也就是说binLog日志是偏逻辑性质的, 直接记录某个数据的修改记录。
binLog日志主要是用来做主从机制中数据同步和数据恢复用的,可以很快的通过binLog日志知道某一条数据当前最新的值应该是什么。Masert端将binLog发送给各个Slave端,从而达到主从数据一致的目的;而数据恢复是使用mysql的binLog工具来恢复数据。
并且这个日志是追加写入,不会覆盖历史记录。
undoLog
undoLog是在每次修改的时候都会一条数据的最新版本,形成一个数据的版本链日志,当发生事务回滚操作的时候,可以直接通过这制定版本来恢复数据。
并且在事务控制的时候是非常有用的,可以控制每个事务能看到的版本从而控制事务的隔离级别(只对读已提交和不可重复读有用)
总结
redoLog是InnoDB引擎的日志,并且是循环写入的,会覆盖历史的数据。记录的日志偏物理性质,是记录事务在innoDB所有操作的日志,包括记录有没有写入binLog,只有redoLog日志记录了commit事务提交,才算是操作完成。
binLog日志是server层的日志,偏逻辑性质,记录每条数据做了什么修改,主要是用来做主从复制和数据恢复用的。
undoLog日志是数据的版本链控制,结合MVCC来使用,每次修改数据会就会生成一条记录,查询的时候控制事务所能看到的版本。
边栏推荐
- LeetCode每日两题01:反转字符串 (均1200道)方法:双指针
- LeetCode Daily 2 Questions 02: Reverse the words in a string (1200 each)
- Introduction to the use of counter instructions in Rockwell AB PLC RSLogix5000
- How to be a Righteous Hacker?What should you study?
- H3C S5130 IRF做堆叠
- 文件IO-缓冲区
- Why general company will say "go back messages such as" after the end of the interview, rather than just tell the interviewer the result?
- 水果沙拉酱
- CFdiv2-Beautiful Mirrors-(期望)
- 学会开会|成为有连接感组织的重要技能
猜你喜欢
随机推荐
美味石井饭菜
特别的三杯鸡
“数据引擎”开启前装规模量产新赛道,「智协慧同」崭露头角
XSLeaks 侧信道攻击 (unfinished)
Spark基础【RDD转换算子】
TCP连接过程中如果拔掉网线会发生什么?
RecyclerView设置缓存大小
实例052:按位或
留言有奖|OpenBMB x 清华大学NLP:大模型公开课更新完结!
web项目访问引用jar内部的静态资源
二叉树 | 代码随想录学习笔记
Glide监听Activity生命周期源码分析
今日睡眠质量记录75分
BM7 链表中环的入口结点
HGAME 2022 Week1 writeup
y93.第六章 微服务、服务网格及Envoy实战 -- Envoy配置(四)
实例054:位取反、位移动
【Maui正式版】创建可跨平台的Maui程序,以及有关依赖注入、MVVM双向绑定的实现和演示
LabVIEW分配多少线程?
ASCII、Unicode和UTF-8