블로그

[MySQL] MySQL Copying to tmp table 메시지 관련

MySQL 운영 도중 성능이 급격히 하락해서 프로세스를 조회할 경우

Copying to tmp table

메시지가 나오는 경우가 있습니다. 이런 경우 관련 변수에 할당된 값을 늘려주면 도움이 많이

될 수 있으니 참고하셔서 설정하시면 되실 듯 합니다.

변수 값 확인

SELECT @@global.max_heap_table_size, @@session.max_heap_table_size;
16777216 | 16777216

SELECT @@global.tmp_table_size, @@session.tmp_table_size;
16777216 | 16777216

global 은 전역 변수이고 session 은 세션 변수입니다. 전체 서버에 적용할 경우 global 값을

확인해서 설정해 주면 됩니다.

두 변수의 global 값을 64M 정도로 설정합니다.

SET @@global.max_heap_table_size = 1024 * 1024 * 64;

SET @@global.tmp_table_size = 1024 * 1024 * 64;

확인해 보면

SELECT @@global.max_heap_table_size, @@session.max_heap_table_size;
67108864 | 67108864

SELECT @@global.tmp_table_size, @@session.tmp_table_size;
67108864 | 67108864

session 변수로 설정하면 해당 세션에만 적용이 되니 참고하시기 바랍니다.