이것은 쉽지 않습니다. Percona Server에서 임시 테이블의 크기를 보여줍니다 슬로우 쿼리 로그에 추가 정보를 추가 할 수있는 옵션 (https://www.percona.com/doc/percona-server/5.7/diagnostics/slow_extended.html 참조)
# [email protected]: mailboxer[mailboxer] @ [192.168.10.165]
# Thread_id: 11167745 Schema: board
# Query_time: 1.009400 Lock_time: 0.000190 Rows_sent: 4 Rows_examined: 1543719 Rows_affected: 0 Rows_read: 4
# Bytes_sent: 278 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0
# QC_Hit: No Full_scan: Yes Full_join: No Tmp_table: No Tmp_table_on_disk: No
# Filesort: No Filesort_on_disk: No Merge_passes: 0
가 (예는 위의 Percona 문서에서 가져온, 확장 필드를 보여줍니다있다, 이 예는 임시 테이블을 만들지 않은 쿼리에 대한 것이므로 크기는 0으로 표시됩니다.)
Oracle MySQL에서는 PERFORMANCE_SCHEMA-의 쿼리 이벤트에서 동일한 확장 정보를 사용할 수 있지만 임시 테이블 크기.
2014 년에이 정보를 제공하라는 기능 요청이 기록되었습니다 : https://bugs.mysql.com/bug.php?id=74484이 버그는 인정되었지만 알고있는 한 구현되지 않았습니다.
특정 쿼리가 여러 크기의 임시 테이블을 만드는 것이 가능하기 때문에 이것이 어떻게 구현되는지는 분명하지 않습니다. Percona 기능은 이러한 경우 임시 테이블 크기의 총합을 표시합니다.
모든 제안은 Created_tmp_tables
(디스크를 사용하지 않은 임시 테이블)에 비해 단위로 max_heap_table_size
및 tmp_table_size
을 높이고, SHOW GLOBAL STATUS
에 의해보고 된 Created_tmp_disk_tables
의 증가율을 모니터링하는대로 내가 제공 할 수 있습니다. 허용 된 tmp 테이블 크기가 생성되는 임시 테이블의 더 큰 비율을 유지할 수 있으므로 디스크상의 임시 테이블과 인 메모리 임시 테이블의 비율이 감소하는 것을보아야합니다.
일반적으로 tmp_table_size
을 늘려서 을 유지할 필요가 없습니다. 얼마나 큰지간에 가능한 임시 테이블마다. 가장 큰 이상 치를 사용하려면 디스크를 사용하십시오. 그러나 임시 테이블이 98 %의 시간 동안 메모리를 사용하는 한 괜찮습니다. 이는 Created_tmp_disk_tables 대 Created_tmp_tables의 비율이 1:50 이상이어야 함을 의미합니다.
어떤 버전의 MySQL/Aurora를 사용하고 있습니까? –
오로라 버전 1.14.1 – sager89