안녕하세요.
오늘은 MySQL의 임시 테이블(Temporary Table)에 대해서 상세히 알아보겠습니다.
MySQL Temporary Table에 대하여
▣ Temporary Table 의미 및 특징
단일 세션에서 여러 번 재사용 가능한 임시 결과를 저장할 수 있는 특수한 유형의 테이블
- 반복적인 SELECT문 실행 시 또는 대량의 집계 쿼리 같이 비용이 많이 들 때 유용하게 활용 가능함
- 임시 테이블을 생성한 Client에게만 사용 및 접근 권한이 있으며, 세션이나 연결이 종료될 때 자동으로 삭제됨
- 같은 이름의 2개 이상의 Temporary Table(이하 Temp)은 생성될 수 없으나, 일반 테이블과 같은 이름의 Temp은 생성할 수 있음 (다만, 기존에 있는 일반 테이블은 접근할 수 없으며, 모든 접근은 같은 이름의 Temp로 가게 됨)
: CTE(Common Table Expressions) 비교
- CTE와 Temp는 모두 데이터 관리 및 조작을 위해 SQL에서 활용할 수 있는 유용한 도구
- CTE는 소규모 데이터 세트에서 효율적이며, Temp은 큰 규모의 데이트 세트에서 효율적
※ CTE에 대해서 더 궁금하신 분들은 아래 글을 참고하시기 바랍니다.
2021.11.18 - [Programming/SQL] - [MySQL] with CTE (공통 테이블 표현식)
▣ Temporary Table 다루기 (생성 및 삭제)
- 생성하거나 삭제하는 것은 기존 SQL문에서 TEMPORARY만 TABLE 앞에 추가하면 됨
- 앞서 말했듯이, 하나의 세션 안에서 임시 테이블을 생성하고 조회하여야만 사용할 수 있음
-- 임시 테이블 생성 및 조회하기
CREATE TEMPORARY TABLE table[테이블명]
-- 조회 시 집계문 등 활용 가능
SELECT *, SUM(DISTINCT COL1) FROM table[테이블명];
- 임시 테이블 삭제 시 TEMPORARY를 붙이지 않아도 삭제가 가능하지만, 테이블명 중복 가능성이 있기에 TEMPORARY를 붙여주는 것이 안전함
DROP TEMPORARY TABLE table[테이블명];
'Programming > SQL' 카테고리의 다른 글
[MySQL] 쿼리 결과 변수로 설정하기 (82) | 2024.02.21 |
---|---|
[MySQL] IP 주소 데이터 처리하기(INET_ATON, INET_NTOA) (76) | 2024.02.18 |
[MySQL] Comment 코멘트 다루기 (0) | 2024.02.12 |
[MySQL] 주석 달기 (0) | 2024.02.10 |
[SQL] 버전 확인하기 (1) | 2023.11.26 |
댓글