【mysql】MyISAM表的存储格式_MySQL

WBOY
풀어 주다: 2016-06-01 13:36:32
원래의
1237명이 탐색했습니다.

bitsCN.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)压缩表占据很小的磁盘空间,最小化了磁盘用量。

    (2)每个记录被单独压缩,访问开支小。

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

 

bitsCN.com
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿