** max_heap_table_size

 : 사용자가 생성한 memory 테이블이 증가할 수 있는 최대 크기 (내부적으로 생성된 임시테이블도 포함)

  - 사용자가 명시적으로 생성한 memory 테이블은 max_heap_table_size로만 크기를 결정하고, 온디스크 형식으로 변환되지 않음

  - 복제 되지 않음

 

** tmp_table_size

 : 내부 메모리 내 임시 테이블 최대 크기 (온디스크 임시테이블은 제외)

  - 사용자가 만든 memory 테이블에는 적용되지 않음.

  - group by 를 사용한 쿼리가 많고, 메모리 여유가 많으면, max_heap_table_size와 같이 증가시킨다.

 

** 특이사항

  - 실제 limit는 두 값 중 더 적은 값으로 제한되므로, 두 변수 모두 동일/유사하게 설정한다.

  - 만약 내부 메모리 임시 테이블이 limit를 초과하면, mysql은 자동으로 온디스크 임시 테이블로 변환한다. (MyISAM테이블로 변환됨)

** 임시 테이블

- union, subquery, distinct + order by , insert..select… 등

- explain의 extra 에 using temporary가 써있으면, 임시테이블이 필요 한 것!

 

 

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sort_buffer_size

https://dev.mysql.com/doc/refman/5.7/en/internal-temporary-tables.html

'[MySQL 운영] > MySQL Tip' 카테고리의 다른 글

MySQL 잠금 확인 방법  (0) 2021.01.29
pt online schema change  (0) 2021.01.28
mysql show processlist ip 확인하기  (0) 2021.01.28
MySQL 미사용 인덱스 조회  (0) 2021.01.28
mysql 선택도 나쁜 인덱스 조회 방법  (0) 2021.01.28
DB별, Table별 데이터 사이즈  (0) 2021.01.28
쿼리 진행율 확인  (0) 2021.01.28
Print Friendly and PDF Posted by JJ*
: