[MySQL] ARCHIVE 엔진 및 INNODB 테이블 압축 > Mysql 정보

본문 바로가기

검색취소

[MySQL] ARCHIVE 엔진 및 INNODB 테이블 압축

검색 이전 다음 목록

본문

MySQL (혹은 MariaDB도 동일)에는 기본적으로 다양한 테이블 엔진이 있습니다.

최근에 필요에 따라 ARCHIVE 엔진을 사용해 볼 기회가 있었습니다.
이 엔진은 로그 저장과 같이 계속해서 Append 되기만 하고,
중간에 삭제되거나 변경되지 않는 자료를 보관하기에 알맞습니다.
대신 색인을 지원하지 않는 단점이 있습니다.

압축률은 데이터에 따라 다르지만 원본의 1/5 ~ 1/3 정도 되는 것 같습니다.

이와는 무관하게 InnoDB 엔진에도 압축할 수 있는 방법이 있습니다.
하지만 이 압축을 위해서는 파일 형식도 달라져야 합니다.

우선 /etc/mysql/my.cnf 파일의

[mysqld] 항목에

innodb_file_per_table=1

innodb_file_format=barracuda

 

두 항목을 확인합니다.

(없는 항목은 추가합니다.)

 

innodb_file_format은 디폴트로 Antelope 인데, 이 경우에는 Compress 되지 않습니다.


위와 같이 설정이 변경된 상태에서,

 

$ /etc/init.d/mysql restart

 

시킵니다.

 

그리고 테이블을 만들 때,

 

CREATE TABLE foo (

 id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 

 log VARCHAR(%s) NOT NULL

ENGINE=InnoDB

ROW_FORMAT=COMPRESSED

KEY_BLOCK_SIZE=8;

 

와 같은 식으로 만들어 줍니다.

 

KEY_BLOCK_SIZE는 2,4,8,16 등이 있는데,

8로 했을 경우에 원본 크기의 50% 정도의 압축률과

50% 정도의 입력시 추가 부담 시간이 소요되는 것 같은데,

4로 했을 경우에는 입력하는 시간이 훨씬 더 부담이 

되었습니다.

 

 

어느분께는 도움이 되셨기를... 

등록된 댓글이 없습니다.

검색취소

Mysql 정보

검색
  • no image
  • [MySQL] ARCHIVE 엔진 및 INNODB 테이블 압축

    MySQL (혹은 MariaDB도 동일)에는 기본적으로 다양한 테이블 엔진이 있습니다.최근에 필요에 따라 ARCHIVE 엔진을 사용해 볼 기회가 있었습니다.이 엔진은 로그 저장과 같이 계속해서 Append 되기만 하…

  • no image
  • [펌] MySQL 운영하면서 겪은 문제점과 해법들

     MySQL 운영하면서 겪은 문제점과 해법들지난 2년간 번개장터 서비스를 운영하면서 MySQL 을 사용하였는데 여러가지 한계에 부딛히면서 전문 업체에게 컨설팅을 받아서 시행착오를 줄이는게 낫겠다는 생각을 했습니다. …

  • LIKE vs INSTR() vs BINARY LIKE  속도 비교
  • LIKE vs INSTR() vs BINARY LIKE 속도 비교

    [MYSQL] LIKE vs INSTR()0. 배경1. 영문 검색어 테스트  1-1. 앞 부분 검색  1-2. 중간 부분 검색  1-3. 끝 부분 검색2. 한글 검색어 테스트  2-1. 앞 부분 검색  2-2. 중간…

  • no image
  • [DBMS] MySQL 의 InnoDB 엔진 의 특성

    다들 한번씩은 들어봄직한 InnoDB 엔진에는 개발시 매우 중요한 부분을 차지할 수도 있을 만한 특성이 있습니다. 이 특성 3가지를 언급해 보고자 합니다. 행여 InnoDB 를 사용하여 개발하시는 분들은 참고하시길 …

  • no image
  • 로그활용4 - slow query log

    로그활용4 - slow query logslow-query-log(--slow-query-log)처리에 시간이 걸린 쿼리를 기록하기 위한 옵션이다.쿼리 실행에 long_query_time에 세팅된 초수(표준 10초)…

  • no image
  • Mysql 기록하기 sql log record log 기록

    5.11.3. 일반 쿼리 로그일반 쿼리 로그는 mysqld의 일반적인 실행 결과를 기록한 것이다. 서버는 클라이언트가 접속을하거나 또는 접속을 끊을 때 정보를 이 로그에 기록하고, 클라이언트에서 받는 각 SQL 명령…

?>