데이터베이스를 관리하다 보면 테이블의 구조는 그대로 두고 데이터를 초기화해야 하는 경우가 있습니다.
예를 들어 테스트 데이터를 삭제하거나, 새로운 데이터를 추가하기 위해 기존 데이터를 모두 제거해야 할 때가 그렇죠.
이번 포스팅에서는 MariaDB에서 테이블의 구조는 유지하면서 데이터를 효과적으로 초기화하는 방법을 소개합니다.
1. TRUNCATE 명령어 사용하기
가장 일반적인 방법은 TRUNCATE 명령어를 사용하는 것입니다. 이 방법은 테이블의 모든 데이터를 삭제하면서도 테이블 구조나 인덱스는 그대로 유지합니다. 즉, 테이블을 삭제하고 새로 생성하는 것보다 훨씬 빠르고 간편합니다.
TRUNCATE TABLE 테이블명;
TRUNCATE의 특징
- 빠른 속도: 테이블의 데이터를 한 번에 삭제하기 때문에 매우 빠릅니다.
- 자동 증가 값 초기화: AUTO_INCREMENT 속성이 있는 컬럼의 값이 초기화됩니다.
- ROLLBACK 불가: DELETE와 달리 트랜잭션 로그에 기록되지 않아 롤백이 불가능합니다. 따라서 신중하게 사용해야 합니다.
2. DELETE 명령어와 AUTO_INCREMENT 초기화하기
만약 특정 조건에 따라 데이터를 삭제하거나 AUTO_INCREMENT 값을 유지하고 싶다면 DELETE 명령어를 사용할 수 있습니다. 기본적으로 모든 데이터를 삭제하려면 다음과 같이 사용합니다.
DELETE FROM 테이블명;
DELETE 사용 후 AUTO_INCREMENT 초기화
만약 AUTO_INCREMENT 값을 초기화하고 싶다면 아래와 같이 ALTER TABLE 명령어를 추가로 사용해 초기화할 수 있습니다.
DELETE FROM 테이블명;
ALTER TABLE 테이블명 AUTO_INCREMENT = 1;
이 방법은 TRUNCATE와 달리 트랜잭션으로 관리할 수 있어, 필요에 따라 데이터 삭제를 롤백할 수 있다는 장점이 있습니다.
3. TRUNCATE와 DELETE의 차이점 정리
항목 | TRUNCATE | DELETE |
속도 | 매우 빠름 | 느림 |
트랜잭션 지원 | 미지원 | 지원 |
AUTO_INCREMENT | 초기화됨 | 초기화되지 않음 (수동 설정 필요) |
조건부 삭제 | 불가 | 가능 |
4. 결론
테이블 데이터를 초기화할 때는 상황에 맞는 방법을 선택하는 것이 중요합니다. 속도가 중요하고 데이터 삭제 후 복구가 필요 없는 경우에는 TRUNCATE가 가장 적합하고, 조건부 삭제나 트랜잭션 관리가 필요하다면 DELETE 명령어를 사용하는 것이 좋습니다.
MariaDB에서 데이터 초기화는 매우 자주 사용되는 작업 중 하나이므로 각 방법의 특성을 잘 이해하고 적절히 활용하시기 바랍니다.
'여러가지 > Database' 카테고리의 다른 글
MariaDB에서 특정 '텍스트'를 포함하여 sql 검색하기 (쿼리문) (0) | 2024.10.23 |
---|---|
MariaDB 접속 현황 확인 방법 (1) | 2024.09.24 |
MariaDB에서 특정 유저에게 SELECT 권한 부여하는 쉬운 방법 (0) | 2024.09.20 |
[MySql & Mariadb] 데이터베이스 전체 용량 및 테이블 용량 확인하는 방법 !! (0) | 2024.08.20 |
[MySql & Mariadb] 테이블에서 데이터만 삭제 후 AUTO_INCREMENT 초기화 명령어 ! (0) | 2024.08.14 |
댓글