InnoDB redo log格式-物理log

本文介绍了在页面上修改N个字节作为物理Log的多种记录方式,包括MLOG_WRITE_STRING、MLOG_8BYTES等类型,并详细解释了变长字节算法mach_write_compressed的工作原理及其在不同数据范围内的应用。

在页面上修改N个字节,可以看做物理log。包括以下几种类型:MLOG_WRITE_STRING、MLOG_8BYTES、MLOG_2BYTES、MLOG_1BYTES、MLOG_4BYTES。各种页链表指针修改以及文件头、段页内容的修改都是以这几种方式记录日志。具体格式如下:

1、MLOG_2BYTES、MLOG_1BYTES、MLOG_4BYTES:
InnoDB redo log格式-物理log
2、MLOG_8BYTES
InnoDB redo log格式-物理log
3、MLOG_WRITE_STRING
InnoDB redo log格式-物理log
4、变长字节算法mach_write_compressed:

if (n < 0x80UL) {  
    mach_write_to_1(b, n);  
    return(1);  
} else if (n < 0x4000UL) {  
    mach_write_to_2(b, n | 0x8000UL);  
    return(2);  
} else if (n < 0x200000UL) {  
    mach_write_to_3(b, n | 0xC00000UL);  
    return(3);  
} else if (n < 0x10000000UL) {  
    mach_write_to_4(b, n | 0xE0000000UL);  
    return(4);  
} else {  
    mach_write_to_1(b, 0xF0UL);  
    mach_write_to_4(b + 1, n);  
    return(5);  
}  

5、mlog_write_ulint、mlog_write_ull、mlog_log_string分别是写入1、2、4;8字节;字符串的日志写入函数。

转载于:https://blog.51cto.com/yanzongshuai/2095349

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值