티스토리 뷰

오늘 회사에서 개발환경의 DB 용량이 가득찬 상황이 생겼습니다. 안 쓰는 테이블을 파악해서 DROP 할지 아니면 테이블은 유지를 하고 TRUNCATE 할지, 그 것도 아니면 오래된 레코드를 조건문을 걸어서 DELETE 할지 고민을 했습니다. 이러한 고민들을 바탕으로 삭제와 관련된 명령어들을 한번 정리해보면 좋을 것 같아 글을 작성해 봅니다.

 

데이터베이스 관리 작업 중 가장 자주 접하게 되는 명령어 중 하나가 DELETE, DROP 그리고 TRUNCATE입니다. 이 명령어들은 삭제와 관련된 명령어들 이지만, 작동 방식과 성능, 그리고 사용 목적이 모두 다릅니다. 이 글에서는 각 명령어의 차이를 명확히 이해하고, 어떤 상황에서 적합한지 알아보겠습니다.


DELETE: 데이터를 선택적으로 삭제

DELETE 명령어는 테이블에서 특정 조건에 맞는 데이터를 삭제할 때 사용됩니다. 테이블의 구조는 유지되며, 일부 데이터만 제거됩니다.

주요 특징

  • 조건 삭제 가능: WHERE 절을 사용해 원하는 데이터만 삭제.
  • 로그 기록: 트랜잭션 로그에 기록되며, 롤백이 가능합니다.
  • 성능: 조건에 따라 다소 느릴 수 있습니다.
  • 테이블 구조 유지: 데이터만 삭제되고 테이블은 그대로 유지됩니다.

예제

DELETE FROM employees WHERE department = 'Sales';
  • employees 테이블에서 Sales 부서의 데이터를 삭제합니다.

사용 시기

  • 특정 조건에 맞는 일부 데이터만 삭제해야 할 때.
  • 트랜잭션을 활용해 작업을 롤백해야 할 가능성이 있을 때

DROP: 테이블 자체를 삭제

DROP 명령어는 테이블 전체를 삭제하며, 테이블의 데이터뿐만 아니라 구조와 모든 관련 메타데이터도 제거됩니다.

주요 특징

  • 조건 없이 전체 삭제: 테이블과 데이터가 모두 사라집니다.
  • 롤백 불가능: 작업 후 데이터를 복구할 수 없습니다.
  • 속도: 테이블 구조까지 삭제하기 때문에 매우 빠릅니다.

예제

DROP TABLE employees;
  • employees 테이블 자체를 삭제합니다.

사용 시기

  • 테이블이 더 이상 필요 없고, 구조까지 제거해야 할 때.
  • 대규모 변경 작업 전에 기존 테이블을 완전히 삭제하고 새로 만들고 싶을 때.

TRUNCATE: 데이터만 초기화

TRUNCATE 명령어는 테이블의 모든 데이터를 빠르게 삭제합니다. 그러나 테이블의 구조는 그대로 유지됩니다.

주요 특징

  • 조건 없이 데이터 전체 삭제: 특정 조건을 적용할 수 없습니다.
  • 속도: 데이터를 한 번에 초기화하기 때문에 빠릅니다.
  • 롤백 불가능: 로그 기록이 적어서 복구할 수 없습니다.
  • 테이블 구조 유지: 데이터만 삭제되고 테이블은 그대로 남습니다.

예제

TRUNCATE TABLE employees;
  • employees 테이블의 데이터를 모두 삭제합니다.

사용 시기

  • 테이블 데이터를 초기화해야 하지만 구조는 유지해야 할 때.
  • 데이터 양이 많아 DELETE 명령어가 느릴 때.

DELETE vs DROP vs TRUNCATE 비교

명령어 DELETE DROP TRUNCATE
삭제 범위 조건부 데이터 삭제 테이블 전체 삭제 테이블 데이터 전체 삭제
테이블 구조 유지 삭제 유지
롤백 가능 여부 가능 불가능 불가능
속도 느림 빠름 매우 빠름
조건 사용 가능 여부 가능 불가능 불가능
 

DELETE, DROP 그리고 TRUNCATE에 대해 정리해봤습니다. 필요한 상황에 맞춰 명령어를 사용해보면 좋을 것 같습니다 !

개발환경의 DB가 FULL이 될 때까지 인지를 못하고 있다가 부랴부랴 공간을 확보했습니다. 그 사이에 발생한 데이터들이 날라간 상황이라 모니터링을 더 꾸준히 해야겠다고 느꼈습니다. 다음 글에는 DB 용량이 80프로 90프로 초과되면 메일이나 메신저가 올 수 있도록 쉘스크립트랑 배치를 만드는 내용을 담고 싶습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함