Mysql 行格式

一、 每行记录在行怎么存储的

mysql 的每行记录都是存储在页里面的,每页的大小是16K。如下图所示:一个页里面有Page header 、Page trailer 、 row offset array 、每行的数据。

row offset array 是每条记录排序用的,当查询的时候,采用二分法进行查询。Page header 、Page trailer 是为了保证数据的完整性。 

二、 行的格式有哪些

行的常见格式有

A) COMPACT 普通的

B) COMPRESSED 可压缩的

C) DYNAMIC 动态行格式, 大对象记录优化, 页溢出处理。

聚集索引中的记录包含所有用户定义列的字段。此外,还有一个 6 字节的事务 ID (trx id)字段和一个 7 字节的滚动指针(roll pointer)字段(隐藏的列)。

假如一张表没有建立聚集索引那么,mysql会自动建立一个row id 的主键id.充当聚集索引。

 
DYNAMIC 与 Compact 处理页溢出数据时有不同:它们不会在记录真实数据处储存真实数据的前 768 个字节,而是把所有的字节都存储到其他页面中,并且只储存其他页面的地址


Compressed 与 Compact 不同的一点是它会采用压缩算法对页面进行压缩,以节省空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值