Real MySQL 책을 읽고 내용을 정리합니다.

 

tmp_table_size

- 메모리에 생성되는 임시 테이블 크기를 제어하는 설정 값.

- 임시 테이블이 쿼리문, 데이터 등의 문제로 크기가 커져서 메모리가 아닌 디스크에서 생성이 되기 시작하면

디스크 병목, cpu부하가 발생하기 때문에 크게 설정하는 것이 좋다.

sort_buffer_size

- 인덱스를 사용할 수 없는 정렬에 메모리 공간을 얼마나 할당할지 결정하는 설정 값.

- 크기가 커질수록 클라이언트 스레드가 사용하는 메모리의 양이 커져서 메모리 낭비가 심해진다.

join_buffer_size

- 적절한 조건이 없어서 Full Table Scan으로 유도되는 경우에 사용되는 조인 버퍼의 크기를 제어하는 설정 값.

- 인덱스를 추가하는 것이 불가능할 때 해당 값을 증가시키는 것이 좋다.

read_buffer_size

- Full Table Scan, 인덱스 캐싱, 기타 스토리지 엔진 등에서 사용되는 리드 버퍼의 크기를 제어하는 설정 값.

- Full Table Scan이 많으면 크게 설정하는 것이 좋으며, 벤치마킹 테스트 결과에서 128KB가 가장 좋은 성능을 내는 크기

key_buffer_size

- MyISAM에서 사용되는 키 버퍼 캐시의 사이즈 값.

- 인덱스 기반의 검색과 정렬이 주를 이루는 곳에서 이 변수의 값을 늘리면 인덱스 정렬 속도가 더 빨라진다.

read_rnd_buffer_size

- 인덱스 없이 정렬할 때 Two-pass알고리즘을 사용할 때 사용할 버퍼의 크기를 설정하는 설정 값.

- 인덱스 없이 정렬하는 경우가 많고, 정렬 대상 데이터가 큰 경우에만 이 값을 늘리도록 한다.

보통 64KB ~ 128KB 수준으로 설정한다.

query_cache_size

- 쿼리 캐시에 관련된 캐시의 크기를 설정하는 설정 값.

- Qcache_free_memory 가 작고, Qcache_lowmem_prunes 가 증가하는 경우에는 증량을 고려해봐야 한다.

query_cache_limit

- 특정한 크기 미만의 쿼리 결과만 캐시하도록 설정하는 설정 값

- Full Table Scan과 같이 큰 공간이 필요한 결과는 캐시하지 않도록 적정한 캐시 최대 사이즈를 설정한다. 

innodb_buffer_pool_size

- Innodb 버퍼 풀의 사이즈를 설정하는 설정 값

- MySQL 5.7부터는 해당 변수가 정적 변수에서 동적 변수로 변경되었기 때문에 크기 조정 시 청크 사이즈 단위로 조정된다. 

 

레퍼런스

Real MySQL

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기