6字节的事务ID(DB

MySQL事务的兑现关系到redo和undo以及purge,redo是确认保障专业的原子性和长久性;undo是确认保证专门的学业的一致性(一致性读和多版本出现调整);purge清理undo表空间
背景知识,对于Innodb表中的行每一行李包裹含:
6字节的业务ID(DB_TRX_ID)字段:
用来标志近日三回对行当记录做修改(INSERT|UPDATE)的专门的学业的标记符,
即最终二回修改(INSERT|UPDATE)本行记录的作业id。
7字节的回滚指针(DB_ROLL_PT福特Explorer)字段: 指写入回滚段(ROLLBACK segment)的
UNDO LOG record (裁撤日志记录记录)。
万一一行记录被更新, 则 UNDO LOG record 满含 ‘重新创设该行记录被更新在此以前内容’
所不可不的音信。

 

1,MySQL事务实践进程中,
www.yabovip4.com,  对于undo log
    对于update大概delete操作,每一行都保存了叁个作业Id,修改职业Id为眼下Session的作业id,
亚搏app官方网站,    生成数据行事务从前的本子,将日前行的回滚指针指向事务在此以前的版本。
    对于insert操作,将最近行的回滚指针指为空,因为insert未有事情操作从前的本子。
  对于redo log
    随着update\delete\insert操作的实践,重做日志Redo
Log不断地写入重做日志缓存(redo_log_buffer),
    对于Redo Log Buffer的落盘(写入 Redo Log File),有二种政策:
    (1),事务commit的时候,
    (2),redo_log_buffer(私下认可8MB)使用超过二分一的时候,
    (3),发生checkpoint的时候
6字节的事务ID(DB。    也正是说,Redo Log
Buffe的落盘并不一定是事情提交的时候才写入的,对于大事务,redo
log是有相当的大可能率逐步落盘的(2,3两点的熏陶)

6字节的事务ID(DB。2,事务的交付Commit
  Redo Log
Buffer的写盘,由变量innodb_flush_log_at_trx_commit决定,有三种情势分别是0,1,2
6字节的事务ID(DB。  要是设置为0,事物提交不触发Redo Log Buffer写盘,每N秒将Redo Log
Buffer的记录写入Redo Log文件,并且将Redo
Log文件刷入硬件存款和储蓄1次,N由innodb_flush_log_at_timeout控制。
  若是设置为1,事务提交时手拉手刷新Redo Log Buffe到Redo
Log文件,而且将Redo Log文件刷新到磁盘。
  假诺设置为2,事务提交时手拉手刷新Redo Log Buffe到Redo
Log文件,.可是Redo Log 的flush(刷到磁盘)操作并不会同期展开。Redo
Log的写盘由操作系统和innodb_flush_log_at_timeout控制。
  须求小心的是,innodb_flush_log_at_trx_commit=1的状态下,固然专门的工作提交能够确认保障redo
log同步写盘,
  但是Redo Log
Buffer的写盘并不一定独有在作业提交的时候才写入的,有非常大只怕是随着时候的实行(若是事情十分的大)稳步写盘的。

3,事务提之后
  因为redo
log的存在(写盘之后),事务的一致性和长久性获得了保险,对于内部存款和储蓄器中的脏数据,通过checkpoint或然内部存款和储蓄器机制刷入磁盘,在多少写入磁盘之后,redo
log空间就可以放出
  对于undo log,当未有运动Session访谈的时候,由purge线程异步清理undo
log占用的半空中

 亚搏app官方网站 1

见相当多人写博客使用xmind或许其余工具对相关知识点实行规整,
开采接近于xmind的结构图对于文化结构十分显然,xmind第一份工成效过,好久没用了,装了试用版开掘意义受限非常多。
于是乎尝试类似于xmind的在线工具,开采百度脑图还是能够,关键是在线的,时时刻刻就都足以展开整理有关的知识点。

 

参考:
https://segmentfault.com/a/1190000012650596

MySQL手艺内部景况 InnoDB存款和储蓄引擎

发表评论

电子邮件地址不会被公开。 必填项已用*标注