• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 1. MySQL 프로그램 개요
    2. MySQL 프로그램 사용
    3. MySQL 서버와 서버 시작 프로그램
    4. 설치 관련 프로그램
    5. 클라이언트 프로그램
    6. MySQL 관리 프로그램 및 유틸리티 프로그램
    1. innochecksum - 오프라인 InnoDB 파일 체크섬 유틸리티
    2. myisam_ftdump - 전체 텍스트 인덱싱 정보보기
    3. myisamchk - MyISAM 테이블 유지 보수 유틸리티
    4. myisamlog - MyISAM 로그 파일의 내용보기
    5. myisampack - 압축 된 읽기 전용 MyISAM 테이블의 생성
    6. mysql_config_editor - MySQL 구성 유틸리티
    7. mysqlaccess - 액세스 권한을 확인하는 클라이언트
    8. mysqlbinlog - 바이너리 로그 파일을 처리하기위한 유틸리티
    9. mysqldumpslow - 슬로우 쿼리 로그 파일의 요약
    10. mysqlhotcopy - 데이터베이스 백업 프로그램
    11. mysql_convert_table_format - 지정된 스토리지 엔진을 사용하는 테이블의 변환
    12. mysql_find_rows - 파일에서 SQL 문을 추출
    13. mysql_fix_extensions - 테이블 파일 확장명의 정규화
    14. mysql_setpermission - 부여 테이블에 허가를 대화식으로 설정
    15. mysql_waitpid - 프로세스를 종료하고 종료를 대기
    16. mysql_zap - 패턴과 일치하는 프로세스를 강제 종료
    7. MySQL 프로그램 개발 유틸리티
    8. 기타 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

4.6.5 myisampack - 압축 된 읽기 전용 MyISAM 테이블의 생성

myisampack 유틸리티는 MyISAM 테이블을 압축합니다. myisampack은 테이블의 각 컬럼을 독립적으로 압축하는 방식으로 작동합니다. 일반적으로 myisampack은 데이터 파일을 40 %에서 70 % 압축합니다.

테이블이 나중에 사용될 경우, 컬럼의 압축에 필요한 정보를 서버가 메모리에 읽습니다. 이렇게하면 개별 행을 액세스 할 때 성능이 크게 향상됩니다. 이것은 압축 해제하여야하는 것은 하나의 행만이기 때문입니다.

MySQL은 압축 된 테이블에 메모리 매핑을 할 경우 가능하면 mmap() 를 사용합니다. mmap() 가 작동하지 않으면, MySQL은 보통의 파일 읽기 / 쓰기 작업으로 돌아갑니다.

다음 사항에 유의하십시오.

  • mysqld 서버가 외부 잠금이 해제 된 상태에서 시작 된 경우, 포장 처리 중에 서버에서 테이블이 갱신 될 가능성이있는 경우, myisampack의 시작은 권장되지 않습니다. 서버가 정지하고있는 상태에서 테이블을 압축하는 것이 가장 안전합니다.

  • 테이블은 팩 후 읽기 전용입니다. 보통 이것은 의도 된 것입니다 (CD에서 압축 된 테이블에 액세스하는 경우 등).

  • myisampack는 분할 된 테이블을 지원하지 않습니다.

myisampack은 다음과 같이 시작합니다.

 shell> myisampack [ options ] file_name ...

각 파일 이름 인수는 인덱스 ( .MYI ) 파일의 이름을하십시오. 데이터베이스 디렉토리에없는 경우, 파일의 경로를 지정하도록하십시오. .MYI 확장자는 생략 가능합니다.

myisampack에서 테이블을 압축하면, myisamchk -rq를 사용하여 인덱스를 다시 작성하도록하십시오. 섹션 4.6.3 "myisamchk - MyISAM 테이블 유지 보수 유틸리티" .

myisampack는 다음 옵션을 지원합니다. 또한 옵션 파일을 읽고 섹션 4.2.7 "옵션 파일의 처리에 영향을주는 명령 행 옵션" 에 설명되어 그들을 처리하기위한 옵션도 지원합니다.

  • --help , -?

    도움말 메시지를 표시하고 종료합니다.

  • --backup , -b

    tbl_name .OLD 라는 이름을 사용하여 각 테이블의 데이터 파일의 백업을 만듭니다.

  • --character-sets-dir = path

    문자 세트가 설치되어있는 디렉토리. 섹션 10.5 "문자 세트 구성" 을 참조하십시오.

  • --debug[= debug_options ] , -# [ debug_options ]

    디버그 로그를 기록합니다. 일반적인 debug_options 문자열은 d:t:o, file_name 입니다. 기본값은 d:t:o 입니다.

  • --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 에 결합합니다. 결합되는 모든 테이블은 반드시 완전히 동일한 구조로하여야합니다 (동일한 컬럼 이름, 형태, 같은 인덱스 등).

    결합 작업 전에 big_tbl_name 이 존재해야합니다. 명령 행에서 지명 된 big_tbl_name 에 병합되는 모든 소스 테이블이 존재해야합니다. 소스 테이블 결합을 위해 읽을 수 있지만 변경은되지 않습니다. 이 결합 작업은 big_tbl_name 의 .frm 파일이 생성되지 않기 때문에 조인 작업이 완료되면 .frm 파일을 소스 테이블 중 하나에서 복사하여 big_tbl_name .frm 라고합니다.

  • --silent , -s

    자동 모드. 오류가 발생했을 때만 출력을 내 보냅니다.

  • --test , -t

    실제로 테이블을 팩하지 않고, 팩 테스트 만 실행합니다.

  • --tmpdir= path , -T path

    지명 된 디렉토리를 myisampack 임시 파일을 만들 위치로 사용합니다.

  • --verbose , -v

    중복 모드. 팩 작업의 진행 상황과 그 결과에 대한 정보를 기록합니다.

  • --version , -V

    버전 정보를 출력하고 종료합니다.

  • --wait , -w

    테이블이 사용중인 경우 기다렸다가 다시 시도합니다. mysqld 서버가 외부 잠금이 해제 된 상태에서 시작 된 경우, 포장 처리 중에 서버에서 테이블이 갱신 될 가능성이있는 경우, myisampack의 시작은 권장되지 않습니다.

다음 명령 시퀀스는 전형적인 테이블 압축 세션을 나타냅니다.

 shell> ls -l station.*
 -rw-rw-r-- 1 monty my 994128 Apr 17 19:00 station.MYD
 -rw-rw-r-- 1 monty my 53248 Apr 17 19:00 station.MYI
 -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm

 shell> myisamchk -dvv station

 MyISAM file : station
 Isam-version : 2
 Creation time : 1996-03-13 10:08:58
 Recover time : 1997-02-02 3:06:43
 Data records : 1192 Deleted blocks : 0
 Datafile parts : 1192 Deleted data : 0
 Datafile pointer (bytes) : 2 Keyfile pointer (bytes) : 2
 Max datafile length : 54657023 Max keyfile length : 33554431
 Recordlength : 834
 Record format : Fixed length

 table description :
Key Start Len Index Type Root Blocksize Rec / key
 1 2 4 unique unsigned long 1024 1024 1
 2 32 30 multip. text 10240 1024 1

 Field Start Length Type
 1 1 1
 2 2 4
 3 6 4
 4 10 1
 5 11 20
 6 31 1
 7 32 30
 8 62 35
 9 97 35
 10 132 35
 11 167 4
 12 171 16
 13 187 35
 14 222 4
 15 226 16
 16 242 20
 17 262 20
 18 282 20
 19 302 30
 20 332 4
 21 336 4
 22 340 1
 23 341 8
 24 349 8
 25 357 8
 26 365 2
 27 367 2
 28 369 4
 29 373 4
 30 377 1
 31 378 2
 32 380 8
 33 388 4
 34 392 4
 35 396 4
 36 400 4
 37 404 1
 38 405 4
 39 409 4
 40 413 4
 41 417 4
 42 421 4
 43 425 4
 44 429 20
 45 449 30
 46 479 1
 47 480 1
 48 481 79
 49 560 79
 50 639 79
 51 718 79
 52 797 8
 53 805 1
 54 806 1
 55 807 20
 56 827 4
 57 831 4

 shell> myisampack station.MYI
 Compressing station.MYI : (1192 records)
 - Calculating statistics

 normal : 20 empty-space : 16 empty-zero : 12 empty-fill : 11
 pre-space : 0 end-space : 12 table-lookups : 5 zero : 7
 Original trees : 57 After join : 17
 - Compressing file
 87.14 %
 Remember to run myisamchk -rq on compressed tables

 shell> ls -l station.*
 -rw-rw-r-- 1 monty my 127874 Apr 17 19:00 station.MYD
 -rw-rw-r-- 1 monty my 55296 Apr 17 19:04 station.MYI
 -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm

 shell> myisamchk -dvv station

 MyISAM file : station
 Isam-version : 2
 Creation time : 1996-03-13 10:08:58
 Recover time : 1997-04-17 19:04:26
 Data records : 1192 Deleted blocks : 0
 Datafile parts : 1192 Deleted data : 0
 Datafile pointer (bytes) : 3 Keyfile pointer (bytes) : 1
 Max datafile length : 16777215 Max keyfile length : 131071
 Recordlength : 834
 Record format : Compressed

 table description :
 Key Start Len Index Type Root Blocksize Rec / key
 1 2 4 unique unsigned long 10240 1024 1
 2 32 30 multip. text 54272 1024 1

 Field Start Length Type Huff tree Bits
 1 1 1 constant 1 0
 2 2 4 zerofill (1) 2 9
 3 6 4 no zeros, zerofill (1) 2 9
 4 10 1 3 9
 5 11 20 table-lookup 4 0
 6 31 1 3 9
 7 32 30 no endspace, not_always 5 9
 8 62 35 no endspace, not_always, no empty 6 9
 9 97 35 no empty 7 9
 10 132 35 no endspace, not_always, no empty 6 9
 11 167 4 zerofill (1) 2 9
 12 171 16 no endspace, not_always, no empty 5 9
 13 187 35 no endspace, not_always, no empty 6 9
 14 222 4 zerofill (1) 2 9
 15 226 16 no endspace, not_always, no empty 5 9
 16 242 20 no endspace, not_always 8 9
 17 262 20 no endspace, no empty 8 9
 18 282 20 no endspace, no empty 5 9
 19 302 30 no endspace, no empty 6 9
 20 332 4 always zero 2 9
 21 336 4 always zero 2 9
 22 340 1 3 9
 23 341 8 table-lookup 9 0
 24 349 8 table-lookup 10 0
 25 357 8 always zero 2 9
 26 365 2 2 9
 27 367 2 no zeros, zerofill (1) 2 9
 28 369 4 no zeros, zerofill (1) 2 9
 29 373 4 table-lookup 11 0
 30 377 1 3 9
 31 378 2 no zeros, zerofill (1) 2 9
 32 380 8 no zeros 2 9
 33 388 4 always zero 2 9
 34 392 4 table-lookup 12 0
 35 396 4 no zeros, zerofill (1) 13 9
 36 400 4 no zeros, zerofill (1) 2 9
 37 404 1 2 9
 38 405 4 no zeros 2 9
 39 409 4 always zero 2 9
 40 413 4 no zeros 2 9
 41 417 4 always zero 2 9
 42 421 4 no zeros 2 9
 43 425 4 always zero 2 9
 44 429 20 no empty 3 9
 45 449 30 no empty 3 9
 46 479 1 14 4
 47 480 1 14 4
 48 481 79 no endspace, no empty 15 9
 49 560 79 no empty 2 9
 50 639 79 no empty 2 9
 51 718 79 no endspace 16 9
 52 797 8 no empty 2 9
 53 805 1 17 1
 54 806 1 3 9
 55 807 20 no empty 3 9
 56 827 4 no zeros, zerofill (2) 2 9
 57 831 4 no zeros, zerofill (1) 2 9

myisampack는 다음 유형의 정보를 표시합니다.

  • normal

    추가 팩이 사용되지 않은 컬럼의 수.

  • empty-space

    공간에만 값을 포함 컬럼의 수. 이들은 1 비트를 차지하고 있습니다.

  • empty-zero

    바이너리 제로 만 값을 포함하는 컬럼의 수. 이들은 1 비트를 차지하고 있습니다.

  • empty-fill

    각 유형의 바이트 범위를 모두 점령하지 정수 컬럼의 수. 이들은 작은 형으로 변경됩니다. 예를 들어, BIGINT 컬럼 (8 바이트)의 모든 값이 -128 에서 127 의 범위 내에있는 경우는이 열을 TINYINT 컬럼 (1 바이트)로 저장할 수 있습니다.

  • pre-space

    선행 공백을 가진 저장되어있는 10 진수 컬럼의 수. 이 경우 각 값은 선행 공백의 수의 카운트를 포함하고 있습니다.

  • end-space

    후행 공백을 많이 포함한 컬럼의 수. 이 경우 각 값은 후행 공백의 수의 카운트를 포함하고 있습니다.

  • table-lookup

    열에는 약간 다른 값 만 있고, 허프만 압축 전에 ENUM 으로 변환되었습니다.

  • zero

    모든 값이 제로의 컬럼의 수.

  • Original trees

    원래의 허프만 트리의 수입니다.

  • After join

    헤더 공간을 절약하기 위해 트리의 결합 뒤에 남은 다른 허프만 트리의 수.

테이블의 압축 후 myisamchk -dvv가 표시 Field 행에는 각 컬럼에 대한 추가 정보가 포함되어 있습니다.

  • Type

    데이터 형식입니다. 이 값은 다음 중 하나의 디스크립터를 포함 할 수 있습니다.

    • constant

      모든 행은 같은 값을 가지고 있습니다.

    • no endspace

      엔드 스페이스를 보존하지 않습니다.

    • no endspace, not_always

      엔드 스페이스를 보존하지 않으며 모든 값에 엔드 스페이스 압축을하지 않습니다.

    • no endspace, no empty

      엔드 스페이스를 보존하지 않습니다. 빈 값을 저장하지 않습니다.

    • table-lookup

      컬럼은 ENUM 으로 변환되었습니다.

    • zerofill ( N )

      값 중 최상위 N 바이트는 항상 0이며 저장되지 않습니다.

    • no zeros

      제로를 저장하지 않습니다.

    • always zero

      제로 값은 1 비트를 사용하여 저장됩니다.

  • Huff tree

    열 관련있는 허프만 트리의 수.

  • Bits

    허프만 트리로 사용되는 비트 수.

myisampack 시작 후 인덱스를 다시 작성하려면 myisamchk를 시작해야 안됩니다. 이 때, MySQL 최적화 작업 효율화를 도모하기 위해 인덱스 블록의 정렬 및 통계의 작성을 할 수 있습니다.

 shell> myisamchk -rq --sort-index --analyze tbl_name .MYI

압축 된 테이블을 MySQL 데이터베이스 디렉토리에 설치 한 후, mysqld가 새로운 테이블을 사용하도록 강요하기 위해 mysqladmin flush-tables를 실행하도록하십시오.

압축 된 테이블을 풀려면, myisamchk에 --unpack 옵션을 사용하십시오.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved