Myisampack - 生成压缩的只读MyISAM表
跳到导航
跳到搜索
myisampack工具用于压缩MyISAM表。myisampack通过分别压缩表中的每一列来实现。通常,myisampack可以将数据文件压缩到原来的40%到70%。
当稍后使用该表时,服务器会将解压缩列所需的信息读取到内存中。这在访问单个行时会导致更好的性能,因为您只需要解压缩一行。
MySQL尽可能使用mmap()对压缩表进行内存映射。如果mmap()无法正常工作,MySQL会回退到正常的读写文件操作。
请注意以下几点:
- 如果mysqld服务器是在禁用外部锁定的情况下调用的,如果在打包过程中服务器可能会更新表,那么调用myisampack不是一个好主意。最安全的做法是在服务器停止时压缩表。
- 打包一个表后,它将成为只读的。这通常是有意为之的(例如在CD上访问已打包的表)。
- myisampack不支持分区表。
调用myisampack的方式如下:
myisampack [options] file_name ...
每个文件名参数都应该是索引(.MYI)文件的名称。如果您不在数据库目录中,则应指定文件的路径名。可以省略.MYI扩展名。
使用myisampack压缩表后,请使用myisamchk -rq重建其索引。