tmp_table_size 와 max_heap_table_size 차이
[MySQL 운영]/MySQL Tip 2021. 1. 29. 14:58 |** 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 |