• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【mysql】MyISAM表的存储格式_MySQL

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

gaodaima.com

【mysql】MyISAM表的存储格式

MyISAM支持三种不同的存储格式:固定格式,动态格式,已压缩格式(只能使用myisampack工具来创建)。

静态表特征(固定格式)

静态格式是MyISAM表的默认存储格式。当表不包含变量长度列(VARCHAR, BLOB, 或TEXT)时,使用这个格式。每一行用固定字节数存储。静态格式是三种存储格式中最简单和最安全的,同时也是最快的ondisk格式。

基本特征:

(1)CHAR列对列宽度为空间填补。

(2)快速。

(3)容易缓存。

(4)由于每个记录位置固定,崩溃后容易重建。(5)无必要重新组织,通常比动态表需要更大的磁盘空间。

动态表特征(动态格式)

如果一个MyISAM表包含任何可变长度 列(VARCHAR, BLOB或TEXTDynamic),或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,动态存储格式被使用。

基本特征:

(1)除了长度少于4的列之外,所有的字符串列存储为动态。

(2)每个记录前存储一个位图,该位图表明哪一列包含空字符串(对于字符串列)或者0(对于数字列),但并不包括包含NULL值的列。而非空字符串列,则会被存为一个长度字节加字符串的内容。

(3)动态格式表在崩溃后要比静态格式表更难重建,因为一个记录可能被分为多个碎片且链接(碎片)可能被丢失。

(4)每个记录仅使用必需大小的空间。尽管如此,如果一个记录变大,它就按需要被分开成多片,造成记录碎片的后果。比如,你用扩展行长度的信息更新一行,该行就变得有碎片。在这种情况下,你可以时不时运行OPTIMIZE TABLE或myisamchk -r来改善性能。可使用myisamchk -ei来获取表的统计数据。

已压缩表特征

MySQL分发版本里默认包含myisampack工具,已压缩存储格式是由它创建的只读格式。

压缩表有下列特征:

(1)压缩表占据很小的磁盘空间,最小化了磁盘用量。

(来源gaodaimacom搞#^代%!码网2)每个记录被单独压缩,访问开支小。

(3)可以处理固定长度或动态长度记录。

gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【mysql】MyISAM表的存储格式_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址