2. DBMS이야기/02. MySQL

MySQL 설치 후 InnoDB Engine Setting

OSSW(Open Source System SoftWare 2014. 8. 28. 15:30


InnoDB 엔진은 MySQL 5.5 이후에는 기본 스토리지 엔진입니다. 최근에는 다른 엔진보다 자주 사용되고 있습니다. 

1. innodb_file_per_table

shared 테이블 스페이스(innodb_file_per_table = OFF) 혹은 분리된 .idb 파일에 각각 테이블(innodb_file_per_table= ON)로 각각 데이터와 인덱스를 저장한다는 것을 의미한다. 테이블 별로 하나의 파일을 가지는 것은 테이블을 drop, truncate, rebuild할 때마다 공간을 다시 확보할 수 있다. 이것은 예를 들면 압축과 같은 고급 기능을 위해 필요하기도 하다. 그러나 성능상은 어느 이점도 없다. MySQL 5.6 부터는 Default 값이 ON 이다. 그 이전 버전에서, 새로 생성되는 테이블에 대해서만 이렇게 생성하려면 ON으로 셋팅해야 한다.

2. innodb_flush_log_at_trx_commit

 기본 셋팅인 1은 InnoDB가 ACID 를 완전히 준수하는 것을 의미한다. 데이터베이스 안전이 가장 중요한 경우 최고의 셋팅값이 될 수 있다. 그러나 느린 디스크와 함께 성능 저하를 겪을 수 있다. 

3. innodb_flush_method

이 설정은 데이터와 로그를 disk 에 플러시하는 것에 관련된 설정이다. 배터리 protect, write-back cache가 있는 RAID 컨트롤러 하드웨어에서는 0_DIRECT 값이 적당하다. 

4. innodb_log_buffer_size

이 값은 아직 commit 되지 않은 트랜잭션을 위한 buffer 사이즈이다. 기본적인 값 1 MB는 일반적으로 적당하다. 그러나 large blob / text field 등의 트랜잭션을 많이 사용한다면 증가시키는 것이 좋다.

BY 윤성용