• 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 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 1. 스토리지 엔진 설정
    2. MyISAM 스토리지 엔진
    1. MyISAM 시작 옵션
    2. Key에 필요한 용량
    3. MyISAM 테이블 스토리지 포맷
    4. MyISAM 테이블의 문제점
    3. MEMORY 스토리지 엔진
    4. CSV 스토리지 엔진
    5. ARCHIVE 스토리지 엔진
    6. BLACKHOLE 스토리지 엔진
    7. MERGE 스토리지 엔진
    8. FEDERATED 스토리지 엔진
    9. EXAMPLE 스토리지 엔진
    10. 다른 스토리지 엔진
    11. MySQL 스토리지 엔진 아키텍처 개요
  • 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 새로운 기능

15.2 MyISAM 스토리지 엔진

15.2.1 MyISAM 시작 옵션
15.2.2 키에 필요한 용량
15.2.3 MyISAM 테이블 스토리지 포맷
15.2.4 MyISAM 테이블의 문제점

MyISAM 은 오래된 (그리고 이미 사용할 수없는) ISAM 스토리지 엔진을 기반으로하지만, 많은 도움 확장 기능을 가지고 있습니다.

표 15.2 MyISAM 스토리지 엔진의 기능

스토리지 제한 256T 바이트 트랜잭션 아니오 잠금 입도 테이블
MVCC 아니오 지리 공간 데이터 형식 지원 예 지리 공간 인덱스의 지원 예
B 트리 인덱스 예 T 트리 인덱스 아니오 해시 인덱스 아니오
전체 검색 인덱싱 예 클러스터 된 인덱스 아니오 데이터 캐시 아니오
인덱스 캐시 예 압축 데이터 예 [a] 암호화 데이터 [b] 예
클러스터 데이터베이스 지원 아니오 복제 지원 [c] 예 외래 키 지원 아니오
백업 / 시점 복구 [d] 예 쿼리 캐시 지원 예 데이터 사전을위한 업데이트 통계 예

[a] 압축 된 MyISAM 테이블을 지원하는 압축 행 형식을 사용하는 경우뿐입니다. MyISAM에서 압축 행 형식을 사용하는 테이블은 읽기 전용입니다.

[b] 스토리지 엔진 내부가 아닌 서버에서 (암호화 함수를 사용하여) 구현되어 있습니다.

[c] 스토리지 엔진 내부가 아닌 서버에서 구현되어 있습니다.

[d] 스토리지 엔진 내부가 아닌 서버에서 구현되어 있습니다.


각 MyISAM 테이블은 디스크에 3 개의 파일로 저장됩니다. 파일 이름은 테이블 이름으로 시작하고 파일 유형을 나타내는 확장자가 붙습니다. .frm 파일은 테이블 포맷을 저장합니다. 데이터 파일에는 .MYD ( MYData ) 확장자가 붙습니다. 인덱스 파일에 .MYI ( MYIndex ) 확장자가 붙습니다.

MyISAM 테이블이 필요함을 명시 적으로 지정하려면 ENGINE 테이블 옵션으로 지정합니다.

 CREATE TABLE t (i INT) ENGINE = MYISAM;

MySQL 5.6에서는 일반적으로 InnoDB 가 기본 엔진이기 때문에 ENGINE 을 사용하여 MyISAM 스토리지 엔진을 지정해야합니다.

mysqlcheck 클라이언트 또는 myisamchk 유틸리티 MyISAM 테이블을 체크하거나 수정할 수 있습니다. 공간을 절약하기 위해 myisampack를 사용하여 MyISAM 테이블을 압축 할 수 있습니다. 섹션 4.5.3 "mysqlcheck - 테이블 관리 프로그램」 , 섹션 4.6.3 "myisamchk - MyISAM 테이블 유지 보수 유틸리티」 , 섹션 4.6.5 "myisampack - 압축 된 읽기 전용 MyISAM 테이블 생성" 을 참조하십시오.

MyISAM 테이블에는 다음과 같은 특징이 있습니다.

  • 모든 데이터 값은 하위 바이트부터 저장됩니다. 그러면 데이터 시스템과 운영 시스템 의존하지 않습니다. 바이너리 이식성을위한 유일한 요구 사항은 2의 보수 부호있는 정수 및 IEEE 부동 소수점 형식을 사용하는 것입니다. 이러한 요구 사항은 주류의 시스템에서 폭넓게 사용되고 있습니다. 바이너리 이식성은 임베디드 시스템에 적용되지 않을 수 있습니다. 특별한 프로세서를 사용하는 경우가 있기 때문입니다.

    하위 바이트부터 데이터를 저장하는 데 큰 속도 저하는 없습니다. 일반적으로 테이블 행의 바이트 정렬하지 않고 순차적으로 미 정렬 바이트를 읽어 들이기 처리는 반대 순서로로드 처리 시간이 더 걸리지 않습니다. 또한 컬럼 값을 가져올 서버의 코드는 다른 코드에 비해 속도가 중시되지 않습니다.

  • 인덱스를 효율적으로 압축 할 수 있기 때문에 모든 숫자 키 값은 상위 바이트부터 저장됩니다.

  • 큰 파일 (최대 63 비트 파일 길이)은 큰 파일을 지원하는 파일 시스템과 운영 체제에서 지원됩니다.

  • MyISAM 테이블의 행 수는 (2 32) 2 (1.844E + 19)의 제한이 있습니다.

  • 하나의 MyISAM 테이블의 최대 인덱스 수는 64입니다.

    1 개의 인덱스의 최대 컬럼 수는 16입니다.

  • 최대 키 길이는 1000 바이트입니다. 이것은 소스를 수정하고 다시 컴파일해서 바꿀 수 있습니다. 키가 250 바이트보다 큰 경우 키의 블록 크기는 기본값 1024 바이트보다 큰 값이 사용됩니다.

  • 정렬 된 순서로 행이 삽입 된 경우 ( AUTO_INCREMENT 컬럼을 사용했을 때와 마찬가지로) 상위 노드가 하나의 키만을 포함하는 인덱스 트리가 분할됩니다. 따라서 인덱스 트리의 영역 이용률이 향상됩니다.

  • 테이블 당 하나의 AUTO_INCREMENT 컬럼의 내부 처리가 지원됩니다. MyISAM 은 INSERT 조작 및 UPDATE 작업이 컬럼을 자동으로 업데이트합니다. 이렇게하면 AUTO_INCREMENT 컬럼은 빨라집니다 (적어도 10 %). 시퀀스의 상단 값은 제거되면 다시 사용할 수 없습니다. ( AUTO_INCREMENT 컬럼이 다중 컬럼 인덱스의 마지막 컬럼으로 정의 된 경우 시퀀스의 상단에서 제거 된 값이 재사용됩니다.) AUTO_INCREMENT 값은 ALTER TABLE 또는 myisamchk로 설정할 수 있습니다.

  • 동적 크기의 행 삭제를 갱신 및 삽입과 함께 사용하면 분할이 상당히 감소합니다. 이것은 삭제 된 인접 블록을 자동으로 결합하여 다음의 블록이 삭제 된 경우 블록을 확장하는 것으로 이루어집니다.

  • MyISAM 은 동시 삽입을 지원하고 있습니다. 테이블의 데이터 파일 중간에 빈 블록이 없으면 다른 스레드가 테이블에서 읽을 것과 동시에 새로운 행을 거기에 INSERT 할 수 있습니다. 행을 삭제 한 결과로 또는 동적 길이의 행을 현재의 내용보다 많은 데이터로 업데이트 한 결과로 여유 블록이 발생할 수 있습니다. 모든 빈 블록이 완전히 사용되면 (채워지면) 이후의 삽입은 다시 병렬됩니다. 섹션 8.10.3 "동시 삽입" 을 참조하십시오.

  • 데이터 파일과 인덱스 파일을 다른 물리적 장치에서 다른 디렉토리에두고 DATA DIRECTORY 및 INDEX DIRECTORY 테이블 옵션을 CREATE TABLE 에 붙여 속도를 높일 수 있습니다. 섹션 13.1.17 "CREATE TABLE 구문" 을 참조하십시오.

  • BLOB 와 TEXT 컬럼 인덱스를 붙일 수 있습니다.

  • 인덱싱 된 열이 NULL 값이 허용됩니다. 여기에는 키 당 0 - 1 바이트가 필요합니다.

  • 문자 컬럼마다 다른 문자 집합을 가질 수 있습니다. 섹션 10.1 "문자 집합 지원" 을 참조하십시오.

  • MyISAM 인덱스 파일에 표가 제대로 닫혔는지 여부를 나타내는 플래그가 있습니다. mysqld가 --myisam-recover-options 옵션으로 시작되면, MyISAM 테이블은 언제 열린 여부를 자동으로 확인하고 제대로 닫혀 있지 않은 경우 복구됩니다.

  • myisamchk는 --update-state 옵션을 사용하여 실행 여부를 테이블에 표시합니다. myisamchk --fast는이 마크가없는 테이블 만 확인합니다.

  • myisamchk --analyze는 키 전체에 대해하는 것과 마찬가지로, 키 부분에 대한 통계 데이터를 저장합니다.

  • myisampack는 BLOB 및 VARCHAR 컬럼을 압축 할 수 있습니다.

MyISAM 은 다음과 같은 기능도 지원하고 있습니다.

  • 진정한 VARCHAR 형을 지원하고 있습니다. VARCHAR 컬럼은 1 ​​바이트 또는 2 바이트로 저장되는 길이 시작됩니다.

  • VARCHAR 컬럼을 가진 테이블의 행의 길이는 고정 또는 동적 일 수 있습니다.

  • 테이블에 VARCHAR 와 CHAR 컬럼의 총 길이는 최대 64K 바이트 될 수 있습니다.

  • 임의의 길이의 UNIQUE 제약.

추가 리소스

  • MyISAM 스토리지 엔진에 특화된 포럼은 http://forums.mysql.com/list.php?21 에서 볼 수 있습니다.


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