MySQL myisampack用法

MySQL

工作中接触myisam存储引擎数据库,每天产生大量的数据,磁盘空间占用过大。myisampack工具可以压缩MyISAM表来解决空间占用过大的问题。通常,myisampack可以将数据文件压缩到40%-70%。当以后使用表时,解压缩列需要的信息被读入内存。当访问具体的记录时性能会更好,因为你只需要解压缩一个记录。

myisampack的常用选项:
–help,-? 显示帮助消息并退出。
–backup,-b 使用tbl_name.OLD名备份表数据文件。
—debug[=debug_options],-# [debug_options] 写调试日志。debug_options字符串通常为’d:t:o,file_name’。
–force,-f 产生一个压缩的表,即使它比原始表大,或如果以前调用myisampack的中间文件存在。(myisampack压缩表时在数据库目录中创建一个名为tbl_name.TMD的中间文件。如果杀掉myisampack,.TMD文件会被删除)。通常情况,如果myisampack发现tbl_name.TMD存在则退出并提示错误。用–force,myisampack则一定压缩表。
-join=big_tbl_name,-j big_tbl_name 将命令行中的所有表联接为一个表big_tbl_name。将要连接的所有表必须有相等的结构(相同的列名和类型,相同的索引等等)。
–pack length=len,-p len 指定记录长度存储大小,以字节计。值应为1、2或者3。myisampack保存所有长度指针为1、2或者3字节的行。在大多数常情况下,myisampack在开始压缩文件前可以确定准确的长度值,但在压缩过程中它可以提示它可能已经使用了一个短的长度。在这种情况下,myisampack输出一条提示,下次你压缩同一文件时,你可以使用更短的记录长度。
–silent,-s 沉默模式。只有发生错误时才写输出。
–test,-t 没有实际地压缩表,只是测试压缩。
–tmpdir=path,-T path 使用myisamchk创建临时文件的目录。
–verbose,-v 冗长模式。写压缩操作过程相关信息和其结果。
–version,-V 显示版本信息并退出。
–wait,-w 如果表正使用则等待并重试。如果用–skip-external-locking选项调用了mysqld服务器,如果在压缩过程中表可能被更新,调用myisampack不是一个好主意。
–unpack选项 解压缩一个压缩的表,

运行myisampack后,必须运行myisamchk以重新创建索引。将压缩的表安装到MySQL数据库目录中后强制mysqld使用新的表。

1
2
shell> myisamchk -rq --sort-index --analyze tbl_name.MYI
shell> mysqladmin flush-tables

来源:MySQL myisampack用法

2 评论 “MySQL myisampack用法

    fde22i4 评论:
    2019年5月5日 下午8:03

    好文章!666,学习了

    61o 评论:
    2019年5月10日 下午1:04

    看过了。很好很强大。

发表评论

电子邮件地址不会被公开。 必填项已用*标注