一、        简单介绍

myisampack是一个压缩使用MyISAM引擎表的工具,通常会压缩40%~70%,当须要訪问数据。server会将所须要的信息读入到内存中。所以当訪问详细记录时,性能会更好,由于仅仅须要解压一条记录

MySQL使用mmap()对变哦进行压缩映射,假设mmap()不工作,MySQL会返回到普通的读写文件操作

压缩后的表将会成为仅仅读的,而且myisampack不支持分区表。

二、       命令格式

myisampack 选项 文件名称

三、       经常使用參

--backup-b --backup   使用tbl_name .OLD备份数据文件

--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。将要连接的全部表必须有相等的结构(同样的列名和类型,同样的索引等等)。

--packlength=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选项调用了mysqldserver。假设在压缩过程中表可能被更新,调用myisampack不是一个好主意。

执行myisampack后。必须执行myisamchk以又一次创建索引。

此时,你也能够排序索引块并创建MySQL优化器须要的统计信息以更有效地工作:  shell> myisamchk -rq --sort-index--analyze tbl_name.MYI 将压缩的表安装到MySQL数据库文件夹中后。应执行mysqladmin flush-tables以强制mysqld使用新的表。  要想解压缩一个压缩的表,使用myisamchk或isamchk的--unpack选项。

--help      帮助

四、       经常使用样例

1.   myisampack压缩表

[root@localhosttest2]# ll -tr

总用量 180

-rw-rw---- 1 mysql mysql     65 7月  16 16:40 db.opt

-rw-rw---- 1 mysql mysql   8556 7月  16 16:46 t1.frm

-rw-rw---- 1 mysql mysql   1024 7月  16 17:29 t1.MYI

-rw-rw---- 1 mysql mysql 161742 7月  16 17:29 t1.MYD

 [root@localhost test2]# myisampack t1

Compressing t1.MYD: (23106 records)

- Calculating statistics

- Compressing file

85.68%

[root@localhosttest2]# ll -tr

总用量 44

-rw-rw---- 1 mysql mysql    65 7月  16 16:40 db.opt

-rw-rw---- 1 mysql mysql  8556 7月  16 16:46 t1.frm

-rw-rw---- 1 mysql mysql 23167 7月  16 17:29 t1.MYD

-rw-rw---- 1 mysql mysql  1024 7月  16 17:30 t1.MYI

在Mysql中查询

mysql>show table status like 't1'\G;

*************************** 1. row***************************

Name: t1

Engine: MyISAM

Version: 10

Row_format: Fixed

Rows: 22857

Avg_row_length: 7

Data_length: 159999

Max_data_length: 1970324836974591

Index_length: 1024

Data_free: 0

Auto_increment: NULL

Create_time: 2015-07-16 16:46:17

Update_time: 2015-07-16 17:29:40

Check_time: NULL

Collation: latin1_swedish_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

ERROR:

No query specified

mysql>show table status like 't1'\G;

*************************** 1. row***************************

Name: t1

Engine: MyISAM

Version: 10

Row_format: Fixed

Rows: 23177

Avg_row_length: 7

Data_length: 162239

Max_data_length: 1970324836974591

Index_length: 1024

Data_free: 0

Auto_increment: NULL

Create_time: 2015-07-16 16:46:17

Update_time: 2015-07-16 17:30:48

Check_time: NULL

Collation: latin1_swedish_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

t8      lines: 7        columns: 9

2.   myisampack备份数据库文件

 [root@localhost test2]# ll

-rw-rw---- 1 mysql mysql      65 7月  16 16:40 db.opt

-rw-rw---- 1 mysql mysql    8572 7月  17 09:28 t1.frm

-rw-rw---- 1 mysql mysql      73 7月  17 09:50 t1.MYD

-rw-rw---- 1 mysql mysql    1024 7月  17 10:04 t1.MYI

-rw-rw---- 1 mysql mysql      217月  17 09:50 t1.OLD

-rw-rw---- 1 mysql mysql    8598 7月  17 10:10 t2.frm

-rw-rw---- 1 mysql mysql4344192 7月  17 10:11 t2.MYD

-rw-rw---- 1 mysql mysql 4955136 7月  17 10:11 t2.MYI

-rw-rw---- 1 mysql mysql    8572 7月  17 10:06 t3.frm

-rw-rw---- 1 mysql mysql  147456 7月  17 10:06 t3.ibd

-rw-rw---- 1 mysql mysql    8598 7月  17 10:11 t4.frm

-rw-rw---- 1 mysql mysql 4344192 7月  17 10:11 t4.MYD

-rw-rw---- 1 mysql mysql    1024 7月  17 10:11 t4.MYI

-rw-rw---- 1 mysql mysql    8598 7月  17 10:12 t5.frm

-rw-rw---- 1 mysql mysql 1996157 7月  17 10:12 t5.MYD

-rw-rw---- 1 mysql mysql    1024 7月  17 10:12 t5.MYI

-rw-rw---- 1 mysql mysql4344192 7月  17 10:12 t5.OLD

我们发现备份出来的数据文件与原来的文件大小一致。可是压缩后的数据文件会小一些

3.   向T5中插入数据

mysql> insert into t5(str_number)values(1);

ERROR 1036 (HY000): Table 't5' is read only

 

每天进步一点达——MySQL——myisampack的更多相关文章

  1. 在写一点关于MySQL的知识,感觉自己mmd

    DBMS(Database Management System)数据库管理系统  包括有DDL(数据定义语言)和DML(数据操纵语言)以及DCL(数据库控制语言) 数据库设计方法: 1.需求分析阶段 ...

  2. mysql数据库史上最详细起步教程(1)

    本文主要讲解mysql的操作,尽量保证步骤的详细与清晰,希望能帮到大家. 1.登录后进行数据库的创建:create database lf(数据库名);  (一定要记住分号,mysql在语句的结束符就 ...

  3. mysql分区

    <?php /* 分区 目录 18.1. MySQL中的分区概述 18.2. 分区类型 18.2.1. RANGE分区 18.2.2. LIST分区 18.2.3. HASH分区 18.2.4. ...

  4. 转-MySQL教程-写的很详细,赞一个

    原帖地址:https://www.w3cschool.cn/mysql/,谢谢原帖大人 MySQL是什么? MySQL安装 MySQL示例数据库 MySQL导入示例数据库 MySQL基础教程 MySQ ...

  5. SQL Server和MySQL数据库

    导读:接下来的网上商城的项目,需要用到MySQL数据库了.这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它.本篇博客,先介绍SQL Server的基本内容, ...

  6. Mysql 和 Postgresql(PGSQL) 对比

    Mysql 和 Postgresql(PGSQL) 对比 转载自:http://www.oschina.net/question/96003_13994 PostgreSQL与MySQL比较 MySQ ...

  7. PostgreSQL与MySQL对比

    都属于开放源码的一员,性能和功能都在高速地提高和增强.MySQL AB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错 ...

  8. PostgreSQL 与 MySQL 相比,优势何在?

    一. PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃.断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统 ...

  9. Mysql bench执行sql语句批量操作数据所遇到的问题

    一.错误 rror Code: 1175. You are using safe update mode and you tried to update a table without a WHERE ...

随机推荐

  1. C#虚方法virtual详解

    转: http://www.cnblogs.com/jason_yjau/archive/2009/08/25/1553949.html C#虚方法virtual详解 在C++.Java等众多OOP语 ...

  2. 关于 ASP.NET MVC 4 如果管理用户

    很久没上来写博客,因为自己没写博客的日子里去学了一下OBJECTIVE-C 和 ASP.NET MVC.最近在学ASP.NET MVC 4,有个问题一直在困扰着我,就是怎样管理用SIMPLE MEMB ...

  3. 弱安全协议探测工具-sslciphercheck

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为 网络通信提供安全及数据完整性的一种安全协议.TLS ...

  4. VC多文档编程技巧(取消一开始时打开的空白文档)

    VC多文档编程技巧(取消一开始时打开的空白文档) http://blog.csdn.net/crazyvoice/article/details/6185461 VC多文档编程技巧(取消一开始时打开的 ...

  5. 【原创翻译】The Case for the Reduced Instruction Set Computer

    RISC机的例子 David A. Patterson 加州大学伯克利分校计算机科学系 David R. Ditzel 贝尔实验室计算科学研究中心 介绍 计算机体系结构最主要的目标之一就是设计比之前产 ...

  6. Oracle备忘录

    习惯是一个数据库中有多个用户,但是一个用户对应一个系统 数据库管理员主要职责: 每个Oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库 ...

  7. Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

  8. .NET(C#)调用webService获取客户端IP地址所属区域(非异步)

    功能描述: 此接口用于获取客户端访问的IP的地址所属的区域(国家,城市等).通过输入IP地址查询国家.城市.所有者等信息.没有注明国家的为中国输入参数:IP地址(自动替换 " ." ...

  9. windows权限错误

    1.installer "内部错误 2203 C:\WINDOWS\Installer\354787.ipi,-2147287035” 用户的local\Temp目录没有system权限 2 ...

  10. [HDU 1806] Frequent values

    Frequent values Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...