Cute Light Pink Flying Butterfly 대용량 데이터 삭제 • 옮기기 | 테이블 복제, 키변경, ALTER, RENAME :: 놀면서 돈벌기
본문 바로가기
Coding/DB

대용량 데이터 삭제 • 옮기기 | 테이블 복제, 키변경, ALTER, RENAME

by 왓츠뉴 whatsnew 2025. 4. 8.
반응형

 

 

1천만 건의 데이터가 등록되어있는 테이블에

PK설정이 잘못되어있는걸 발견하였습니다.

 

PK 중복에 따라 데이터가 입력되는 프로시저가 있어

PK를 필수로 맞춰줘야 했는데요. 기존에 있는 데이터가 너무 많다보니

DELETE도 , ALTER도 timeout이 걸려서 결국 테이블을 복제하여 비우는 방법으로 진행하였습니다.

 

 

-- 1. 기존 테이블 복제 (구조만)
CREATE TABLE IOT_DEVICE_STATUS_NEW LIKE IOT_DEVICE_STATUS;
-- 2. (선택) 기존 PK 제거, 새 PK 추가 : 이 부분은 PK 변경을 위한 ALTER 문입니다.
ALTER TABLE IOT_DEVICE_STATUS_NEW
DROP PRIMARY KEY,
ADD PRIMARY KEY (`ID`, `STAT_DATE`,`DEVICE_ID`, `RESOURCE_URI`); 
-- 3. (선택) 데이터 이관 : 이 부분은 데이터 이관이 필요한 경우에만 실행해주시면 됩니다. 빈 테이블을 원할시 생략
INSERT INTO IOT_DEVICE_STATUS_NEW
SELECT * FROM IOT_DEVICE_STATUS;
-- 4. 테이블 이름 바꾸기 (빠르게 스왑)
RENAME TABLE IOT_DEVICE_STATUS TO IOT_DEVICE_STATUS_OLD,
             IOT_DEVICE_STATUS_NEW TO IOT_DEVICE_STATUS;
-- 5. (선택) 백업 테이블 삭제
-- DROP TABLE IOT_DEVICE_STATUS_NEW;
-- 6. 복제 DB 확인
-- SELECT * FROM IOT_DEVICE_STATUS;

 

 

 

728x90
반응형