MySQL innodb file format以及innodb row format

一、概念
当前MySQL Innodb拥有两种文件格式:
1.旧版本的antelope,对应到两种行格式:redundant和compact
2.新版本的barracuda,对应到两种行格式:dynamic和compressed

文件格式和行格式可以通过参数设置:
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_default_row_format=dynamic;

可以通过show table status like 'test’来查看test表的行格式,知道行格式之后也就可以对应到文件格式。
或者通过infomation_schema.innodb_sys_tables来查看某一个表的文件格式和行格式:
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME='test/t1'\G

二、各个行格式的物理结构
1.redundant
6 bytes的头部信息,用于行与行之间连续相连,以及行锁
用户定义的列
6 bytes 事务id和7bytes undo指针
如果没有指定主键,会有一个隐含的6 bytes主键列
如果是二级索引行,还会带有主键列
列指针,如果行的列总长度<128bytes,则占1 byte;如果>=128byte,则占用2 bytes
变长字段的null不占用存储空间,定长字段的null占用字段固定长度
2.compact
compact格式比redundant节省大约20%空间&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值