본문 바로가기

DataBase/My-Sql

[펌]mysql5.x 성능 향상을 위한 파라미터 튜닝

 

아래 설정 값은

http://www.mysqlperformanceblog.com/ 를 참고하여 재 정리한 자료 입니다.

자신의 상황에 맞게 고쳐 쓸 필요가 있으며 실 서비스에 적용시 발생하는 문제에 대해서는 책임 지지 않습니다 . ^^;;

 

innodb_buffer_pool_size

 

  1. 인덱스와 데이터를 메모리로 캐쉬하기 위한 용도로 사용됨.
  2. 크게 잡을수록 Disk IO 가 적게 일어남.
  3.  최대 80% 까지를 추천
  4. 너무 크게 잡을 경우 OS 에서 사용하는 메모리가 적어져 스와핑이 발생하므로 주의 할 필요 있음.일부 보고에 의하면 50% 이상 잡더라도 실제로는 물리메모리의 50% 이상을 사용하지 않는다고 함. 따라서, 기본은 50% 를 추천함

 

innodb_flush_method

 

  1.  buffer pool size 와 관련된 중요한 설정값임
  2.  Innodb 가 이미 캐쉬한 자료를 OS 가 다시 캐쉬할지를 결정하는 설정값
  3.  Double buffering 과 스왑의 부담을 줄이기 위해 설정
  4.  Linux/Unix/Solaris/BSD 계열에서는 fsync() 를 사용하여 파일을 디스크에 Flush ( InnoDB 가 기본적으로 사용하는 방법임). MySQL 의 쓰기 성능을 높이고자 할경우 O_DSYNC 로 설정할 수 있음. 윈도우 에서는 O_DSYNC 가 더 느릴 수 있음.

innodb_log_file_size

 

  1. 데이터 복구를 위하여 사용되는 로그파일의 크기
  2. 시스템 성능과 복구속도를 고려할때 256M 가 적당함.

innodb_log_buffer_size

 

  1. 대량의 blob 데이터를 Innodb piping 하지 않는다면 4M 가 적당

innodb_flush_log_at_trx_commit

 

  1.  데이터 베이스의 ACID( Atomicity,Consistency,Isolation,Durability ) 를 고려하지 않거나 OS Fail시 트랜잭션을 보장하지 않을 경우 2 로 설정.
  2. 2로 설정하는 경우 짧으면서 대량의 트랜잭션 발생시 극적인 성능 향상이 기대된다.
  3. MyISAM 엔진보다 100배 이상 느리다고 생각한다면 설정을 적극적으로 검토하라.

innodb_file_per_table

  1. 테이블 수가 지나치게 많지 않을 경우 사용
  2. Innodb 메인 테이블스페이스를 사용 했을때의 관리 문제 극복 가능

 thread_cache_size

  1. 스레드의 생성/소멸 에는 많은 비용이 드는데 이를 캐쉬에 저장하여 생성/소멸의 비용을 줄일 때 사용한다.
  2. 최소 16으로 설정하라.

query_cache_size

  1.  읽기가 집중적으로 일어나며 어플리케이션에서 캐쉬처리 하지 않을 경우 유용
  2.  너무 크게 잡으면 느려질 가능성이 있음.
  3. 범위는 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