什么是myisam
2008-10-17 11:12:53 来源:WEB开发网核心提示: 所有MySQL分发版里都默认包括myisampack,已压缩表可以用myisamchk来解压缩,什么是myisam(8),已压缩表有下列特征:· 已压缩表占据非常小的磁盘空间,这最小化了磁盘用量,· 硬件故障,· 你可以同时在正被服务器修改的表上使
所有MySQL分发版里都默认包括myisampack。已压缩表可以用myisamchk来解压缩。
已压缩表有下列特征:
· 已压缩表占据非常小的磁盘空间。这最小化了磁盘用量,当使用缓慢的磁盘(如CD-ROM)之时,这是很有用的。
· 每个记录是被单独压缩的,所以只有非常小的访问开支。依据表中最大的记录,一个记录的头在每个表中占据1到3个字节。每个列被不同地压缩。通常每个列有一个不同的Huffman树。一些压缩类型如下:
o 后缀空间压缩。
- 前缀空间压缩。
- 零值的数用一个位来存储。
- 如果在一个整型列中的值有一个小的范围,列被用最小可能的类型来存储。比如,一个BIGINT列(8字节),如果所有它的值在-128到127范围内,它可以被存储为TINYINT列(1字节)
- 如果一个列仅有一小组可能的值,列的类型被转化成ENUM。
- 一个列可以使用先前压缩类型的任意合并。
· 可以处理固定长度或动态长度记录。
15.1.4. MyISAM表方面的问题
15.1.4.1. 损坏的MyISAM表
15.1.4.2. 未被适当关闭的表的问题
MySQL用来存储数据的文件格式已经被广泛测试过,但总是有导致数据表变得损坏的环境。
15.1.4.1. 损坏的MyISAM表
即使MyISAM表格式非常可靠(SQL语句对表做的所有改变在语句返回之前被写下),如果下列任何事件发生,你依然可以获得损坏的表:
· mysqld进程在写中间被杀掉。
· 发生未预期的计算机关闭(例如,计算机被关闭)。
· 硬件故障。
· 你可以同时在正被服务器修改的表上使用外部程序(如myisamchk)。
· MySQL或MyISAM代码的软件缺陷。
更多精彩
赞助商链接