01.Compact行格式
2024-12-12 15:20:13 0 举报
01.Compact行格式是一种优化后的数据存储格式,旨在提高数据库性能和空间利用率。它通过减少行的存储空间,实现了更快的查询和更新操作。这种格式适用于具有固定长度和常见值的列,尤其是那些用于查询和连接的列。01.Compact行格式的优点包括减少I/O、降低内存使用和提升查询性能。然而,由于压缩可能导致额外的CPU开销,因此需要权衡使用这种格式的利弊。总之,01.Compact行格式在许多情况下都能提高数据库性能,但它并不适用于所有数据类型和查询模式。
作者其他创作
大纲/内容
c1
DB_TRX_ID
c3
heap_no:标记该数据插入到该数据页里面的序号信息,Infimum为0,Supremum为1,用户记录从2开始,该标识在锁结构里面有使用,可以实现快速定位和查找 record_type:数据记录类型,0标识普通记录,1表示非叶子节点记录,2表示最小记录,3表示最大记录
1
delete_mask
c2
min_rec_mask
第一行数据的变长字段长度列表
记录头信息
c1长度为4,排在最后,一次排序即可,由于c3列是CHAR类型,并且采用的字符编码是ascii编码,所以是定长字符,不用添加到变长字段列表里面
DB_ROLL_PTR
c4
DB_ROW_ID:该表没有主键或则非空唯一列的时候会有该隐藏列来唯一标识该行数据DB_TRX_ID:最后更新该条数据的事务IDDB_ROLL_PTR:指向上一条事务的UNDO日志指针c1:存储的数据为aaaac2:存储的数据为bbbc3:存储的数据为cc,由于不够10个字符,低位补0x20c4:存储的数据为d
...
预留位1
列2的值
0
案例数据
预留位1:没有使用 预留位2:没有使用 delete_mask:标记该记录是否删除 min_rec_mask:标记该记录是否是最小记录Infimumnext_record:表示下一条记录的相对位置n_owned:该分组中有几条记录,只在改组最后一条有数据,最小分组记录为1,最大分组记录为1~8,中间记录的值为4~8
第一行数据的NULL值列表
预留位2
真实数据
列1的值
第二行数据的NULL值列表
n_owned
NULL值列表
DB_ROW_ID
变长字段长度列表
3
第二行数据的变长字段长度列表
记录的真实数据
next_record
c1列长度为4排在最后,一次排序即可,c3由于是定长类型,所以无需在变长字段列表里面,由于c4是空值,在这里则不用存储c4的长度信息
4
heap_no
列n的值
记录的额外信息
record_type
收藏
0 条评论
下一页