아래 설정 값은
http://www.mysqlperformanceblog.com/ 를 참고하여 재 정리한 자료 입니다.
자신의 상황에 맞게 고쳐 쓸 필요가 있으며 실 서비스에 적용시 발생하는 문제에 대해서는 책임 지지 않습니다 . ^^;;
innodb_buffer_pool_size
-
인덱스와 데이터를 메모리로 캐쉬하기 위한 용도로 사용됨.
-
크게 잡을수록 Disk IO 가 적게 일어남.
-
최대 80% 까지를 추천
-
너무 크게 잡을 경우 OS 에서 사용하는 메모리가 적어져 스와핑이 발생하므로 주의 할 필요 있음.일부 보고에 의하면 50% 이상 잡더라도 실제로는 물리메모리의 50% 이상을 사용하지 않는다고 함. 따라서, 기본은 50% 를 추천함
innodb_flush_method
-
buffer pool size 와 관련된 중요한 설정값임
-
Innodb 가 이미 캐쉬한 자료를 OS 가 다시 캐쉬할지를 결정하는 설정값
-
Double buffering 과 스왑의 부담을 줄이기 위해 설정
-
Linux/Unix/Solaris/BSD 계열에서는 fsync() 를 사용하여 파일을 디스크에 Flush 함( InnoDB 가 기본적으로 사용하는 방법임). MySQL 의 쓰기 성능을 높이고자 할경우 O_DSYNC 로 설정할 수 있음. 윈도우 에서는 O_DSYNC 가 더 느릴 수 있음.
innodb_log_file_size
-
데이터 복구를 위하여 사용되는 로그파일의 크기
-
시스템 성능과 복구속도를 고려할때 256M 가 적당함.
innodb_log_buffer_size
- 대량의 blob 데이터를 Innodb 로 piping 하지 않는다면 4M 가 적당
innodb_flush_log_at_trx_commit
-
데이터 베이스의 ACID( Atomicity,Consistency,Isolation,Durability ) 를 고려하지 않거나 OS Fail시 트랜잭션을 보장하지 않을 경우 2 로 설정.
-
2로 설정하는 경우 짧으면서 대량의 트랜잭션 발생시 극적인 성능 향상이 기대된다.
- MyISAM 엔진보다 100배 이상 느리다고 생각한다면 설정을 적극적으로 검토하라.
innodb_file_per_table
-
테이블 수가 지나치게 많지 않을 경우 사용
- Innodb 메인 테이블스페이스를 사용 했을때의 관리 문제 극복 가능
thread_cache_size
-
스레드의 생성/소멸 에는 많은 비용이 드는데 이를 캐쉬에 저장하여 생성/소멸의 비용을 줄일 때 사용한다.
- 최소 16으로 설정하라.
query_cache_size
-
읽기가 집중적으로 일어나며 어플리케이션에서 캐쉬처리 하지 않을 경우 유용
-
너무 크게 잡으면 느려질 가능성이 있음.
-
범위는 32 ~ 512M 정도가 적당
'DataBase > My-Sql' 카테고리의 다른 글
MySQL Table Copy (0) | 2008.11.26 |
---|---|
MySQL 대소문자구분 (0) | 2008.11.26 |
[펌]mysql 초기 설정 (0) | 2008.11.06 |
[펌]mysql 테이블 단위로 백업 및 복원 (0) | 2008.11.06 |
[펌]MySQL 에서 root 암호 설정 방법 (0) | 2008.11.06 |