mysql基础题目~综合
一 redo undo binlog
第一点
redo是记录数据页变更操作的物理日志
undo是记录数据版本历史快照的逻辑日志
binlog 是记录事务语句的逻辑日志
第二点 当要修改数据时
1 undo生成目标数据的历史快照版本
分类 insert_undo,update_undo
格式 <事务,column,old_value>
redo记录针对目标数据页的操作和undo本身的操作
提供历史版本读取和事务回滚
2 二阶段提交
redo进行刷新->prepare
redo_buffer->redo_file->redo_disk(参数决定是否经过redofile flush操作)
binlog生成相应binlog_event并写入binlog_buffer-commit
binlog刷新,(参数不同是否决定文件刷新到磁盘 sync操作)
binlog_buffer->binlog_disk
3 数据页进行修改
4 数据页写入double write,double write进行刷新
5 数据页刷新到磁盘