MySQL에서 TRUNCATE 명령어는 DELETE문과 비슷하게 데이터를 삭제하지만, 더 빠르고 완전하게 테이블을 초기화합니다. 이 글에서는 TRUNCATE의 개념과 사용법, DELETE와의 차이점까지 정리해드립니다.
MySQL TRUNCATE 테이블 초기화
TRUNCATE란?
- 테이블의 모든 레코드를 완전히 삭제하는 명령어입니다.
- DELETE문과 달리 조건 지정 없이 전체 삭제만 가능하며, 복구 불가합니다.
- 내부적으로는 테이블을 DROP한 뒤 다시 생성하는 방식이며, AUTO_INCREMENT 값도 초기화됩니다.
-- 'test' 테이블의 전체 데이터 삭제
TRUNCATE TABLE test;
📌 TRUNCATE는 DML이 아닌 DDL에 가까운 명령입니다.
TRUNCATE와 DELETE의 공통점과 차이점
공통점
- 둘 다 테이블의 데이터를 삭제하는 데 사용됩니다.
차이점
- TRUNCATE: 전체 삭제만 가능, 빠름, 복구 불가, AUTO_INCREMENT 초기화됨
- DELETE: 조건 지정 가능, 복구 가능, AUTO_INCREMENT 유지됨
구분 | TRUNCATE | DELETE |
삭제 범위 | 전체 삭제만 가능 | 조건 지정 가능 |
속도 | 빠름 | 상대적으로 느림 |
복구 | ❌ 불가능 | ✅ 가능 (InnoDB + 트랜잭션 사용 시) |
AUTO_INCREMENT | 초기화됨 | 유지됨 |
✅ 요약
- TRUNCATE는 테이블을 완전히 초기화할 때 사용
- 빠르지만 복구가 불가능하므로 주의 필요
- DELETE는 부분 삭제와 조건 삭제에 적합
이 방법은 MySQL 5.x 이상 대부분의 환경에서 동일하게 사용할 수 있습니다.
'DataBase > MySQL' 카테고리의 다른 글
MySQL UPDATE 문 조건에 맞는 여러 개의 데이터 변경 방법 (0) | 2024.08.14 |
---|---|
MySQL INSERT 문 사용 방법 정리 (데이터 삽입) (0) | 2024.08.13 |
MySQL DELETE 문 정리 (테이블 데이터 삭제) (0) | 2022.12.21 |
MySQL 일별, 주별, 월별, 특정 기간별 통계 조회 (1) | 2022.12.19 |
MySQL 페이징 처리 - LIMIT, OFFSET 사용 방법 (0) | 2022.12.14 |
댓글