一、简单介绍

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_每天进步一点达——MySQL——myisampack相关推荐

  1. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 原文 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 感谢大家在上一篇 学一 ...

  2. 关于MySQL存储过程异常处理的一点心得

    关于MySQL存储过程异常处理的一点心得 参考文章: (1)关于MySQL存储过程异常处理的一点心得 (2)https://www.cnblogs.com/lrl45/p/6037513.html ( ...

  3. MySQL/人大金仓与达梦(DM)SQL语言的一些区别

    MySQL/人大金仓与达梦(DM)的SQL语言区别 注:不同版本之间存在差异 1.官方SQL语言文档 https://download.csdn.net/download/weixin_4416750 ...

  4. MySQL教程三 复杂一点的查询

    文章目录 1.视图 1.1 什么是视图 1.2 视图与表有什么区别 1.3 为什么会存在视图 1.4 如何创建视图 1.5 如何修改视图结构 1.6 如何更新视图内容 1.7 如何删除视图 2 子查询 ...

  5. mysql通过dts迁移至达梦

    一.分析待移植系统,确定移植对象. 1.通过数据迁移工具DTS完成常规数据库对象及数据的迁移. 2.通过人工完成MSQL的移植,如存储过程,函数等非表对象. 3.移植完成后对移植的结果进行校验,确保移 ...

  6. mysql 设置 server id_详解Mysql存储引擎

    1.libmysql相关API介绍 MYSQL *mysql_init(MYSQL *mysql) 函数功能:分配或初始化MYSQL对象,若mysql是NULL,将分配,初始化,并返回新对象.否则,直 ...

  7. MySQL存储引擎简介——《高性能MySQL》

    在文件系统中,Mysql将每个数据库(也可以称之为schmea)保存为数据目下的一个子目录.数据库和表的定义都使用文件系统的目录和文件来保存,大小写敏感和具体的平台密切相关.在Windows中,大小写 ...

  8. mysql 主从复制 和基于gtid的mysql主从复制

    主从复制 原理: mysql 无需借助第三方工具,而是其自带的同步复制功能,另外一点,mysql 的主从 复制并不是从硬盘给上文件直接同步,而是逻辑的 binlog 日志同步到本地的应用执行的过 程. ...

  9. mysql 基于gtid复制_深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果slav ...

最新文章

  1. 大牛深入讲解!java数组冒泡排序从小到大
  2. APPCAN MAS接口之SOAP
  3. java闪屏怎么制作,Java Swing创建自定义闪屏:在闪屏下画进度条(一)
  4. vantUI 弹出层(轻提示)案例 - 踩坑篇
  5. 编程算法 - 最小的k个数 红黑树 代码(C++)
  6. 关于YUV格式的一些总结
  7. ASP.NET WEB API简介
  8. mesa3d源代码阅读笔记
  9. linux makefile教程,Makefile简单入门教程
  10. 电商入门_仓库管理系统wms
  11. 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2021年08月份最新版)
  12. win7变成xp风格了怎么改回_win7怎么变成xp界面|win7系统变成xp界面主题的方法
  13. 禁止MAC Chrome更新
  14. 2023年房地产地段研究报告
  15. 接受-拒绝采样算法详细证明
  16. 自动驾驶汽车GPS系统数字孪生建模(一)
  17. jQuery EasyUI 1.9.4中文参考手册 离线chm格式
  18. c语言编译器2017,2016-2017年本科C语言编译器设计与实现毕业论文设计.doc
  19. .Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓)
  20. ChatGPT实战:如何进行高难度沟通

热门文章

  1. java传值和通过引用传递
  2. 【转】删除已经存在的 TFS Workspace
  3. win8.1出现 called runscript when not marked in progress
  4. H.264 Profile、Level、Encoder三张简图
  5. Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE
  6. 关于Nand ECC 错误
  7. Omap3530 的GPIO中断设置
  8. C#DotNetBar TabControl将水平标签设置成竖直
  9. HALCON示例程序color_pieces.hdev通过MLP训练器对彩色棋子进行分类识别
  10. 【sqlite常用操作SQL语句】