[MySQL] 같은 구조의 Temp Table 생성
목적
(A) DB에서 (B) DB로 가공하여 긁어와야 함
처음 생각 한 방법
1. (B) temp 테이블을 미리 생성한다.
2. (B) temp로 (A) DB 테이블 데이터를 저장
3. (B) temp -> (B) 원하는 테이블로 저장
로직에는 처음 시작할 때 temp 삭제하는 구간도 있으나 생략했다.
이렇게 진행하니 똑같은 테이블 두 개를 동시에 유지보수 해야 하는 단점이 생겼다.
TEMPORARY TABLE
TEMPORARY TABLE 이란?
간단히 말하면 임시테이블이다.
특징은 다음과 같다.
- 세션 또는 트랜잭션 범위 : 대부분의 데이터베이스 시스템에서 임시 테이블은 생성한 데이터베이스 세션 또는 트랜잭션 동안에만 존재한다. 세션이나 트랜잭션이 종료되면 임시 테이블은 자동으로 삭제된다.
- 격리 수준 : 임시 테이블은 다른 세션에서 보이지 않으므로, 데이터의 격리 수준이 높다. 이는 동시에 여러 사용자가 동일한 데이터베이스를 사용할 때 데이터 충돌을 방지한다.
- 성능 : 임시 테이블은 주로 메모리에 저장되며, 디스크 기반의 일반 테이블보다 빠른 접근속도를 제공할 수 있다. 하지만 대량의 데이터나 복잡한 쿼리에 대해서는 성능에 영향을 줄 수 있다.
- 용도 : 임시 테이블은 복잡한 쿼리의 중간 결과를 저장하거나, 데이터 변환, 데이터의 일시적인 백업, 테스트 목적 등에 사용된다.
TEMPORARY TABLE 생성하는 방법
CREATE TEMPORARY TABLE my_temp_table (
column1 INT,
column2 VARCHAR(100)
);
간단히 생성 가능하다.
나는 기존에 존재하는 똑같은 구조의 테이블을 생성해야 해서 다음과 같이 했다.
CREATE TEMPORARY TABLE my_temp_table LIKE basic_table;
LIKE를 사용하여 테이블 구조를 복사 할 수 있다.