5.5 임시 테이블(Using temporary)

-1. 임시 테이블이 메모리를 사용시 : MEMORY 스토리지 엔진
-2. 임시 테이블이 디스크 저장시 : Aria 스토리지 엔진

5.5.1 임시 테이블이 필요한 쿼리

-1. ORDER BY와 GRCXJP BY에 명시된 칼럼이 다른 쿼리
-2. ORDER BY나 GROJP BY에 명시된 칼럼이 조인의 순서상 첫 번째 테이블이 아닌 쿼리
-3. DISTINCT와 ORDER BY가 동시에 쿼리에 존재하는 경우 또는 DISTINCT가 인덱스로 처리되지 못하는 쿼리
-4. UNION이나 UNION 이STINCT가사용된쿼리(select_type 칼럼이 UNION RESULT인 경우)
-5. UNION ALL이 사용된 쿼리(select_type 칼럼이 UNION RESULT인 경우)
-6. 쿼리의 실행 계획에서 select_type이 DERIVED인 쿼리

5.5.2 임시 테이블이 디스크에 생성되는 경우(Aria 스토리지 엔진을 사용)

-1. 임시 테이블에 저장해야 하는 내용 중 BLOB(Binary Large Object)나 TEXT와 같은 대용량 칼럼이 있는 경우
-2. 임시 테이블에 저장해야 하는 레코드의 전체 크기나 UNION이나 UNION ALL에서 SELECT되는 칼럼 중에서 길이
가 512바이트 이상인 크기의 칼럼이 있는 경우
-3. GROUP BY나 DISTINCT 칼럼에서 512바이트 이상인 크기의 칼럼이 있는 경우
-4. 임시 테이블에 저장할 데이터의 전체 크기(데이터의 바이트 크기)가 tmp_table_size 또는 max_heap_table_size
시스템 설정 값보다 큰 경우

자세히 되어 있지만 결국 데이터가 크면 디스크에 생성된다는 것이다.
단, 4번처럼 초기 데이터가 크지 않으면 처음엔 메모리에 생성된다.

5.5.3 임시 테이블 관련 상태 변수