본문 바로가기

코딩공부

[SQL] MySQL 테이블 압축, 임시테이블

✍️ Study Note

 

 


 

 

1. 테이블 압축

  • ROW_FORMAT = COMPRESSED
  • 대량 데이터 입력 시, 데이터 압축이 되면서 시간이 오래 걸림
  • 테이블 상태 조회 시 (SHOW TABLE STATUS FROM 테이블이름), ROW_FORMAT : COMPRESSED이고 AVG_ROW_LENGTH가 일반 열보다 짧음을 확인할 수 있다.
-- 테이블 압축
USE COMPRESSDB;
CREATE TABLE NORMALTBL (EMP_NO INT, FIRST_NAME VARCHAR(14));
CREATE TABLE COMPRESSTBL (EMP_NO INT, FIRST_NAME VARCHAR(14))
ROW_FORMAT = COMPRESSED;

-- 테이블 상태 조회
SHOW TABLE STATUS FROM COMPRESSDB;

 

 

 

2. 임시테이블

  • CRATE TEMPORARY TABLE 테이블이름
  • 임시테이블은 세션 내에서만 존재하며, 세션이 닫히면 자동 삭제
  • 임시테이블은 생성한 클라이언트에서만 접근 가능하며, 다른 클라이언트는 접근 불가

 

  • 데이터 내 다른 테이블과 이름 중복 가능
  • 다른 테이블과 이름이 동일할 경우, 기존 테이블에는 접근 불가능하고 무조건 임시테이블로 접근됨.
  • 임시테이블 삭제 시점
  1. 사용자가 DROP TABLE로 직접 삭제 시
  2. Workbench를 종료하거나 mysql 클라이언트를 종료 시
  3. MySQL 서비스가 재시작될 때

 

-- 임시테이블 생성
USE EMPLOYEES;
CREATE TEMPORARY TABLE IF NOT EXISTS TEMPTBL (ID INT, NAME CHAR(5));
CREATE TEMPORARY TABLE IF NOT EXISTS EMPLOYEES (ID INT, NAME CHAR(5));
DESCRIBE TEMPTBL;
DESCRIBE EMPLOYEES;

-- 임시테이블 데이터 입력
-- EMPLOYEES의 경우, 같은 이름의 기존테이블이 아닌 임시테이블에 데이터 입력된 것 확인가능
INSERT INTO TEMPTBL VALUES (1, 'THIS');
INSERT INTO EMPLOYEES VALUES (2, 'MYSQL');
SELECT * FROM TEMPTBL;
SELECT * FROM EMPLOYEES;