[MySQL] DROP 명령어는 어떻게 테이블을 통채로 날릴까?

2024. 11. 12. 14:51· Backend/MySQL

MySQL의 명령어를 공부해본 사람이라면, DROP과 TRUNCATE, DELETE 명령어의 차이를 들어보았을 것이다.

 

 

https://wikidocs.net/4021

간단하게 이야기를 하자면, DELETE 명령어는 원하는 데이터를 지울 수 있고, 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.

 

TRUNCATE 명령어는 테이블은 삭제하지는 않고, 데이터만 삭제한다. 삭제 후 절대 되돌릴 수 없다.

 

DROP 명령어는 테이블 전체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.

 

 

 

그럼 DROP 명령어는 어떻게 작동하길래, 테이블이 통채로 사라질까?

MySQL의 innoDB에서는 테이블을 .ibd 파일로 저장한다.

 

 

DROP시 .ibd 파일이 어떻게 되는지 살펴보자.

mysql> CREATE DATABASE test_db;
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO test_table (id, name) VALUES (1, 'example');
Query OK, 1 row affected (0.01 sec)

 

가상의 test_db를 만들고 테이블을 생성한 뒤 값을 삽입했다.

 

 

우선 TRUNCATE 이후 .ibd 파일이 존재하는지 살펴보자.

mysql> TRUNCATE TABLE test_table;
Query OK, 0 rows affected (0.01 sec)

$ ls -l {---}/mysql/data/test_db/test_table.ibd
-rw-r----- 1 mysql mysql 98304 Nov 12 12:00 /usr/local/mysql/data/test_db/test_table.ibd

TRUNCATE 명령어는 .ibd 파일이 그대로 존재한다.

 

 

 

DROP 명령어 이후 .ibd 파일이 존재하는지 살펴보면,

mysql> DROP TABLE test_table;
Query OK, 0 rows affected (0.01 sec)

$ ls -l {---}/mysql/data/test_db/test_table.ibd
ls: /usr/local/mysql/data/test_db/test_table.ibd: No such file or directory

.ibd 파일이 삭제된 것을 알 수 있다.

 

 

 

DROP 명령어는 .ibd 파일이 삭제해 테이블을 통채로 날리는 것을 알 수 있다.

'Backend > MySQL' 카테고리의 다른 글

자주 바뀌는 데이터, 정적 테이블에 넣어도 괜찮을까  (0) 2025.06.05
TS로 아주아주 간단한 MySQL 만들어보기  (0) 2024.10.17
100만개의 데이터, 경우에 따른 실행 계획 확인해보기  (0) 2024.10.16
[MySQL] DB의 인덱스로 B+트리를 사용하는 이유  (0) 2024.09.28
[MySQL] MySQL 아키텍처를 간단히 살펴보기  (0) 2024.08.10
'Backend/MySQL' 카테고리의 다른 글
  • 자주 바뀌는 데이터, 정적 테이블에 넣어도 괜찮을까
  • TS로 아주아주 간단한 MySQL 만들어보기
  • 100만개의 데이터, 경우에 따른 실행 계획 확인해보기
  • [MySQL] DB의 인덱스로 B+트리를 사용하는 이유
동구름이
동구름이
동구름이
동구름
동구름이
전체
오늘
어제
  • 분류 전체보기 (178)
    • Java (63)
      • Java 를 파헤쳐보자 (13)
      • BOJ (45)
      • 프로그래머스 (3)
      • SWEA (1)
      • Java GUI (1)
    • JavaScript (17)
      • JS를 파헤쳐보자 (7)
      • 프로그래머스 (7)
      • JS 학습 정리 (1)
    • Backend (33)
      • Spring (3)
      • HTTP (7)
      • 프로젝트 (10)
      • MySQL (6)
      • Redis (3)
      • Elastic Search (1)
      • 인증, 인가 (3)
    • CS (57)
      • 운영체제 (35)
      • Network (22)
    • Git (2)
    • 개발 관련 이것저것 (2)
    • etc (1)
    • 독서 (0)
    • 사설 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스택
  • 운영체제
  • 인프런
  • 자바스크립트
  • 김영한
  • Java
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 레디스
  • 큐
  • 프로그래머스
  • 자바
  • 네트워크
  • OS
  • 구현
  • JCF
  • BOJ
  • 백준
  • 반효경
  • 이석복
  • 한양대

최근 글

hELLO · Designed By 정상우.v4.2.2
동구름이
[MySQL] DROP 명령어는 어떻게 테이블을 통채로 날릴까?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.