mysql compact_[MySQL]InnoDB行格式剖析_MySQL - compact

58e8d81c4a0d115f2a9f9f245fa77d87.png

... $this->layout->main=View::make('dash')->nest('content','comments.list',compact('comments'));

}

代码如上,其中compact 参数 为什么是'comments'而不是$comments?

bitsCN.com

[MySQL]InnoDB行格式剖析

InnoDB和大多数行式数据库一样,记录以行的格式存储,它提供了两种格式:Compact和Redundant

Compact

Compact格式是在MySQL5.0时才被引入,它是新的行格式,其设计目标是高效存放数据,示意图如下:

1)变长字段长度列表。按列的逆序放置,当列长度小于255字节,用1字节表示,若大于255字节,用2个字节表示,至多为2字节(这也很好解释了InnoDB中varchar的最大长度为什么是65535,因为2个字节为16位,2的16次方-1)。注意,对于固定长度字段(如char),是不需要记录其长度的。

2)NULL标志位。指示该行中的列是否为NULL,1表示NULL。

3)记录头信息。固定占用5个字节(40位),每位代表的含义如下表所示:

4)最后就是实际存储的该行每列的数据了,注意:NULL不在该部分中占用存储。

5)此外还有两个隐藏部分,分别存放事务ID和回滚指针,大小分别为6字节和7字节,如果表没有定义主键,每行还会自动增加6字节的ROWID。

Redundant

Redundant是MySQL5.0之前InnoDB的行记录存储格式,其示意图如下:

1)字段长度偏移列表。同样按列的逆序放置,当列长度小于255字节,用1字节表示,若大于255字节,用2个字节表示。

2)记录头信息。固定占用6个字节(48位),每位含义见下表:

3)最后部分是实际存储各个列数据。

4)和Compact一样,还有两个隐藏部分,分别存放事务ID和回滚指针,大小分别为6字节和7字节,如果表没有定义主键,每行还会自动增加6字节的ROWID。

Redundant和Compact最大的不同是对Char类型NULL值的处理,Redundant会实际存储NULL值,占Char类型固定长度空间,而Compact不占用空间,这也是Compact能寸更多记录的原因之一。注意:对于varchar类型,不管是Compact还是Redundant都不存储NULL值。

Compressed和Dynamic

InnoDB Plugin引入了新的文件格式,称为Barracuda(之前的Compact和Redundant称为Antelope),拥有两种权限的记录格式Compressed和Dynamic。这里就不详细介绍它们了,有兴趣的童鞋可以自行研究下。bitsCN.com

... $this->layout->main=View::make('dash')->nest('content','comments.list',compact('comments'));

}

代码如上,其中compact 参数 为什么是'comments'而不是$commen

...:函数理解什么是可变参数函数, ...$var, PHP5.6新特性介绍compact函数的用法 PHP: compact - Manuallist函数的用法 PHP: list - ManualPHP魔术方法开始之前本期说的是SQL中的查询语句, 由于复杂程度和多个类之间的关联性不是Conn

这篇文章介绍的内容是关于php内置函数使用 compact() ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下今天在使用tpshop时发现一个的php内置函数,叫compact(),该函数创建一个由参数所带变量...

HBase解决Region Server Compact过程占用大量网络出口带宽的问题 作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: 推荐:《HBase权威指南》 HBase 0.92版本之后,Region Server的Compact过程根据待合并...

HBase Compactions Q: Ted Yu summarizes some of the most frequent questions related to compactions in HBase: On user mailing list, questions about comp

系列文章导航: 如何将数据导入到 SQL Server Compact Edition 数据库中(一) 如何将数据导入到 SQL Server Compact Edition 数据库中(二) 如何将数据导入到 SQL Server Compact Edition 数据库中(三) 如何将数据导入到 S

compact()函数是PHP中的内置函数,它用于使用变量创建数组。此函数与extract()函数相反。它创建一个关联数组,其键是变量名,其对应的值是数组值。语法:array compact("variable 1", "variable 2"...)

..."center">

虽然说是新增格式,但该格式与原默认的compact是基本一样的,只是新增了关键的Field Count(字段数)控制信息。

下面先回顾下compact行格式

compact聚集索引记录的格式由下图所示,由记录头和记录内容组...

在某系统中对一张表数据写入量很大,频繁的compaction导致效率很低。这张表已经presharding过了,有几百个region,由于某些原因,短期内不太允许增大region数。当时采用的方法是每小时生成一张表,每小时的数据只写对应的表...

php compact函数用于创建数组,该函数创建数组比较特殊,compact函数参数将接受一个或多个变量,然后将变量的名称作为该创建数组的索引,变量值作为该创建数组的值,然后返回创建完成的数组。本文章向大家讲解compact函数的...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值