首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >InnoDB行格式

InnoDB行格式

作者头像
只喝牛奶的杀手
发布2019-08-26 16:54:35
发布2019-08-26 16:54:35
6580
举报

我们平时是以记录为单位来向表中插入数据的,这些记录在磁盘上的存放方式也被称为行格式或者记录格式。设计InnoDB存储引擎的大叔们到现在为止设计了4种不同类型的行格式,分别是CompactRedundantDynamicCompressed行格式,随着时间的推移,他们可能会设计出更多的行格式,但是不管怎么变,在原理上大体都是相同的。

当然我们可以创建表的时候制定行格式的类型,但是如果我们没有设置呢?我们可以使用下面的命令:

代码语言:javascript
复制
SHOW TABLE STATUS FROM DB;

结果如下:

我们可以看整个表的大小,和行格式,默认行格式就是Dynamic。网上好多文章说,对于InnoDB表,默认的行格式为:COMPACT。是错的。

Dynamic和Compact行格式挺像,只不过在处理行溢出数据时有点儿分歧,它们不会在记录的真实数据处存储字段真实数据的前768个字节,而是把所有的字节都存储到其他页面中,只在记录的真实数据处存储其他页面的地址,就像这样:

MySQL对于我们来说还是一个黑盒,我们只负责使用客户端发送请求并等待服务器返回结果,表中的数据到底存到了哪里?以什么格式存放的?MySQL是以什么方式来访问的这些数据?这些问题我们统统不知道,做一个求真、求实的工程师,继续研究。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 只喝牛奶的杀手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档