>  기사  >  데이터 베이스  >  mysql에서 임시 테이블을 사용해야 하는 경우

mysql에서 임시 테이블을 사용해야 하는 경우

WBOY
WBOY원래의
2022-05-26 17:11:262492검색

mysql에서 임시 테이블을 사용하는 경우: 1. UNION 쿼리에서 TEMPTABLE 알고리즘 또는 뷰를 사용하는 경우 2. DISTINCT 쿼리를 사용하고 ORDER BY를 추가하는 경우 3. SQL에서 "SQL_SMALL_RESULT" 옵션을 사용하는 경우; FROM 등에서 서브쿼리를 사용하는 경우

mysql에서 임시 테이블을 사용해야 하는 경우

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql에서 임시 테이블을 사용하는 경우

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.