Mysql InnoDB 설정 (my.cnf)
다음은 MySQL InnoDB 설정 변수 이다. ( vi /etc/my.cnf)
innodb_data_file_path
Data File(Tablespace)의 속성을 정의한다.
[Data file path]파일명:파일크기:autoextend:max:파일최대크기;
파일 구분은 ';'이고 속성 구분은 ':' 이다.
innodb_autoextend_increment
Data File(Tablespace)이 확장될 때 증가되는 Size(MB) (default=8M)
innodb_additional_mem_pool_size
default : 2M
Data Dictionary 정보를 보관하기 위한 Memory Size.
innodb_buffer_pool_size
default : 8M
index 및 raw data Cache 용 Memory Size를 의마하며 Maximum Size는 real Memory의 80%까지 정의 가능하다. 하지만, Memory Paging을 최소화 할 수 있는 Size가 적당하다. 참고로 Oracle의 권고 SGA Size는 real Memory의 50%이다. 32 Bit O/S의 경우 Addressing 특성 상 Maximum 4G이므로 O/S 및 다른 용도의 Memory를 감안하여 이보다 작게 정의해야 한다.
innodb_flush_method
Disk I/O Buffer의 사용 여부
일반적으로 Disk I/O가 발생하면 그 즉시 Disk에 반영되지 않고 Memory에 caching되었다가 일정 Size이상이 되면 그 때 Disk에 Physically 반영되는데, 이러한 과정 없이 즉시로 Disk에 반영 시키는 Option이다.
[O_DIRECT] Cache Write 시 Disk에도 동일하게 반영 시킨다.
[O_DSYNC]
innodb_flush_log_at_trx_commit
Commit 시 Commit Log를 Log File에 어떻게 기록할지를 지정한다.
[0] Log Buffer가 꽉 차거나 Flush Log가 발생할때 Log File에 기록
[1] Commit 이 발생할 때 마다 Log File에 기록
[2] 1초마다 Log File에 기록
innodb_log_file_size
트랜잭션을 기록하는 로그 파일의 크기를 결정하는 옵션으로 로그파일은 무한정 계속 커지는 것이 아니라 일정한 크기와 갯수를 가지고 순환식으로 처리된다.
보통 일반적으로 innodb_buffer_size 의 15% 정도로 설정한다.
만약 메모리가 1GB이면 innodb_buffer_pool_size = 512M 이고, innodb_log_file_size = 80M 이다.
innodb_log_buffer_size
로그 파일을 기록하기 위한 Buffer Size로 Transaction이 작거나 거의 없다면 크게 잡는것은 낭비이다.
보통 1M~8M 사이로 설정.
innodb_log_archive
Log File의 Archive화 여부로 복구 시 log File을 사용하므로 설정할 필요가 없음.
innodb_file_per_table
Table마다 별도의 Data File을 가지게 하는 옵션으로 하나의 Tablespace에는 하나의 Table Data만 저장한다. 단, 단점은 Data와 Index가 동일 Tablespace(Data File)에 저장된다는 것이다.
'Linux > Mysql' 카테고리의 다른 글
mysql dump 및 restore (0) | 2020.06.01 |
---|---|
mysql user 생성 및 권한 설정 (0) | 2020.06.01 |
리눅스 mysql 설치 (1) | 2016.10.31 |
mysql 실행 시 -bash: mysql: command not found (0) | 2014.02.07 |
리눅스 My-SQL cmake 설치 (2) | 2013.12.16 |