목차
1. myisampack压缩表
2. myisampack备份数据库文件
3. 向T5中插入数据
데이터 베이스 MySQL 튜토리얼 每天进步一点达MySQLmyisampack_MySQL

每天进步一点达MySQLmyisampack_MySQL

Jun 01, 2016 pm 12:59 PM

一、 简介

myisampack是一个压缩使用MyISAM引擎表的工具,一般会压缩40%~70%,当需要访问数据,服务器会将所需要的信息读入到内存中,所以当访问具体记录时,性能会更好,因为只需要解压一条记录

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选项调用了mysqld服务器,如果在压缩过程中表可能被更新,调用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


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker에서 MySQL 메모리 사용을 줄입니다 Docker에서 MySQL 메모리 사용을 줄입니다 Mar 04, 2025 pm 03:52 PM

Docker에서 MySQL 메모리 사용을 줄입니다

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. Mar 04, 2025 pm 04:01 PM

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

sqlite 란 무엇입니까? 포괄적 인 개요 sqlite 란 무엇입니까? 포괄적 인 개요 Mar 04, 2025 pm 03:55 PM

sqlite 란 무엇입니까? 포괄적 인 개요

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Mar 04, 2025 pm 03:54 PM

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 Mar 04, 2025 pm 03:49 PM

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? Mar 18, 2025 pm 12:01 PM

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?

See all articles