728x90
반응형
728x170
MySQL에서 DROP, TRUNCATE, 및 DELETE 명령은 모두 데이터를 제거하는 데 사용되지만, 그 방법과 특성이 서로 다릅니다. 각 명령의 차이점을 예시와 함께 설명하겠습니다.
1. DROP
- 용도: DROP 명령은 테이블 자체를 데이터베이스에서 완전히 제거합니다. 이 명령은 테이블 구조, 정의, 데이터, 테이블에 대한 모든 제약 조건과 인덱스를 삭제합니다.
- 복구: DROP을 사용하면 되돌릴 수 없습니다. 테이블이 완전히 삭제되어 복구가 불가능합니다.
- 성능: 데이터와 테이블의 구조를 한 번에 제거하기 때문에 매우 빠릅니다.
- 예시: DROP TABLE students; - 이 명령은 students라는 테이블을 데이터베이스에서 완전히 삭제합니다.
2. TRUNCATE
- 용도: TRUNCATE 명령은 테이블의 모든 데이터를 빠르게 삭제하지만, 테이블 구조와 정의는 그대로 유지합니다.
- 복구: TRUNCATE는 일반적으로 되돌릴 수 없지만, 일부 데이터베이스 시스템에서는 트랜잭션 내에서 사용할 경우 롤백이 가능할 수 있습니다.
- 성능: TRUNCATE는 DELETE보다 훨씬 빠르며, 테이블의 모든 행을 빠르게 제거합니다.
- 예시: TRUNCATE TABLE students; - 이 명령은 students 테이블의 모든 데이터를 삭제하지만, 테이블 구조는 남아있습니다.
3. DELETE
- 용도: DELETE 명령은 테이블에서 하나 이상의 행을 삭제합니다. 조건을 지정하여 특정 행만 삭제할 수 있습니다.
- 복구: DELETE는 트랜잭션 내에서 사용되는 경우 롤백이 가능하므로 되돌릴 수 있습니다.
- 성능: DELETE는 행 단위로 작동하며, 인덱스 유지 및 트리거 실행 등 추가 작업이 필요할 수 있어 상대적으로 느립니다.
- 예시: DELETE FROM students WHERE grade = 'F'; - 이 명령은 students 테이블에서 성적이 'F'인 학생들의 데이터만 삭제합니다.
요약
- DROP: 테이블과 모든 데이터를 완전히 삭제합니다. 이 작업은 되돌릴 수 없으며, 실행이 매우 빠릅니다.
- TRUNCATE: 테이블의 모든 데이터를 빠르게 삭제하지만, 테이블 구조는 그대로 유지됩니다. 대부분의 경우 이 작업은 되돌릴 수 없습니다.
- DELETE: 조건에 따라 특정 행을 삭제합니다. 이 명령은 되돌릴 수 있지만, 처리 속도가 상대적으로 느립니다.
도표로 한눈에 비교하는 DELETE vs DROP vs TRUNCATE
명령 | 테이블 구조 제거 | 데이터 제거 | 복구 가능 | 성능 | 사용 사례 |
DROP | 예 | 예 | 아니오 | 매우 빠름 | 테이블을 완전히 제거 |
TRUNCATE | 아니오 | 예 | 대부분 아니오 | 빠름 | 모든 데이터 제거, 구조는 유지 |
DELETE | 아니오 | 조건부 | 예 | 느림 | 특정 행 제거 |
728x90
반응형
그리드형
'IT' 카테고리의 다른 글
경제학적 관념에서 바라본 디지털 플랫폼 시대 (0) | 2023.12.26 |
---|---|
논리학 관점에서 필수조건과 충분조건의 이해 (2) | 2023.12.19 |
GPT와 DALL-E 통합 텍스트로 이미지를 생성하는 새로운 기능 추가! (0) | 2023.10.16 |
Springdoc vs. Springfox: 자동 문서화 도구 비교 및 개발 생산성 향상 (0) | 2023.08.22 |
스태프 엔지니어란 무엇인가? (0) | 2023.08.17 |