• 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 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    1. 테이블 압축의 개요
    2. 테이블 압축 사용
    3. InnoDB 테이블의 압축 조정
    4. 런타임 압축 모니터링
    5. InnoDB 테이블에서의 압축 동작
    6. 워크로드의 압축
    7. 압축 구문 경고 및 오류
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. 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 새로운 기능

14.7.1 테이블 압축의 개요

프로세서 및 캐시 메모리는 디스크 저장 장치보다 속도가 상승하고 있기 때문에 많은 워크로드가 디스크 바운드 됩니다. 데이터 압축 을 사용하면 데이터베이스의 크기가 작아지고, I / O가 감소 된 처리량이 향상되지만 CPU 사용률이 상승한다는 약간의 희생이 따릅니다. 압축은 자주 사용되는 데이터를 메모리에 유지하기 위해 충분한 RAM이 탑재 된 시스템에서 읽기 집약적 인 응용 프로그램을 실행할 때 특히 유용합니다.

ROW_FORMAT=COMPRESSED 로 작성된 InnoDB 테이블에서는 보통 16K 바이트의 기본값보다 작은 페이지 크기 를 디스크에서 사용할 수 있습니다. 페이지가 작을수록 디스크에서 읽은 I / O 및 디스크에 기록되는 I / O가 줄어들 기 때문에 SSD 장치를 사용할 때 특히 유용합니다.

페이지 크기는 KEY_BLOCK_SIZE 매개 변수를 사용하여 지정됩니다. 페이지 크기가 다른 경우, 테이블을 시스템 테이블 스페이스 내에 아니라 자신의 .ibd 파일에 저장해야합니다. 그러기 위해서는, innodb_file_per_table 옵션을 활성화해야합니다. 압축 레벨은 KEY_BLOCK_SIZE 의 값에 관계없이 동일합니다. KEY_BLOCK_SIZE 작은 값을 지정할수록 서서히 페이지가 작아진다는 I / O의 이점을 얻을 수 있습니다. 그러나 너무 작은 값을 지정하면 각 페이지에 여러 행을 수용 할만큼 충분히 데이터 값을 압축 할 수없는 경우, 페이지를 재구성하기위한 추가 오버 헤드가 발생합니다. 그 인덱스마다 키 컬럼의 길이에 따라 얼마나 작은 KEY_BLOCK_SIZE 을 테이블에 지정할 수 있는지에 대해 하드 제한이 부과되고 있습니다. 너무 작은 값을 지정하면 CREATE TABLE 또는 ALTER TABLE 문이 실패합니다.

버퍼 풀에 압축 된 데이터가 KEY_BLOCK_SIZE 의 값을 기준으로 페이지 크기가 작은 페이지로 유지됩니다. 컬럼 값을 추출하거나 업데이트하면 MySQL의 버퍼 풀에는 비 압축 데이터를 포함한 16K 바이트의 페이지도 만들어집니다. 버퍼 풀에서 비 압축 페이지에 업데이트가 동등한 압축 된 페이지에 다시 기록됩니다. 압축 된 페이지와 비 압축 페이지 모두 추가 데이터가 수용되도록 버퍼 페이지의 크기를 변경해야하는 경우도 있습니다. 그러나 압축되지 않은 페이지는 공간이 필요할 때 버퍼 풀에서 해방 된 다음 접속시에 다시 압축이 해제됩니다.

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