집 >데이터 베이스 >MySQL 튜토리얼 >mysql에서 임시 테이블을 사용해야 하는 경우
mysql에서 임시 테이블을 사용하는 경우: 1. UNION 쿼리에서 TEMPTABLE 알고리즘 또는 뷰를 사용하는 경우 2. DISTINCT 쿼리를 사용하고 ORDER BY를 추가하는 경우 3. SQL에서 "SQL_SMALL_RESULT" 옵션을 사용하는 경우; FROM 등에서 서브쿼리를 사용하는 경우
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
MySQL은 다음과 같은 상황에서 임시 테이블을 생성합니다.
1. UNION 쿼리
2. TEMPTABLE 알고리즘을 사용하거나
3 ORDER BY와 GROUP BY가 다릅니다.
4. 테이블 연결에서 ORDER BY 열이 ORDER BY로 추가되는 경우; SQL_SMALL_RESULT 옵션이 사용되었습니다.
8. 세미 조인 중에 생성된 하위 쿼리 또는 테이블입니다.
EXPLAIN 임시 사용이 포함되어 있음을 의미합니다. 테이블이 사용됩니다.
물론, 임시 테이블에 저장해야 하는 데이터의 양이 상한(tmp-table-size 또는 max-heap-table-size 중 더 큰 쪽)을 초과하는 경우 디스크를 생성해야 합니다. 기반 임시 테이블.
다음 상황에서는 디스크 임시 테이블이 생성됩니다.1. 데이터 테이블에 BLOB/TEXT 열이 포함되어 있습니다.
2 GROUP BY 또는 DSTINCT에 문자 유형 열이 있습니다. (또는 512바이트를 초과하는 바이너리 유형 열은 512바이트를 초과하는지 여부만 중요함) 3. SELECT, UNION 및 UNION ALL 쿼리에는 최대 길이가 512( 문자열 유형의 경우 512자, 바이너리 유형의 경우 512바이트)
4. 실행 결과가 BLOB 열 유형을 사용하므로 SHOW COLUMNS/FIELDS, DESCRIBE 등과 같은 SQL 명령을 실행합니다.
5.7.5부터 디스크 임시 테이블의 엔진 유형을 InnoDB로 정의할 수 있는 새로운 시스템 옵션 Internal_tmp_disk_storage_engine이 있습니다. 이전에는 MyISAM만 사용할 수 있었습니다. 5.6.3 이후에 추가된 새로운 시스템 옵션인 default_tmp_storage_engine은 CREATE TEMPORARY TABLE로 생성된 임시 테이블의 엔진 유형을 제어합니다. 이전에는 기본값이 MEMORY였습니다.
아래 예를 참조하세요.
추천 학습:mysql 비디오 튜토리얼
위 내용은 mysql에서 임시 테이블을 사용해야 하는 경우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!