Database
[MySQL] DELETE
Jinn
2023. 11. 1. 20:34
DELETE문 기본 구조
DELETE FROM 테이블 WHERE 조건
WHERE절을 생략하면 모든 행의 데이터가 삭제된다.
test 테이블에서 '로제'를 삭제하려면 다음과 같이 할 수 있다.
DELETE FROM test WHERE userName = '로제';
마지막 행의 '로제'가 테이블에서 삭제되었다.
데이터를 삭제하는 방법은 DELETE, DROP, TRUNCATE문으로 크게 3가지가 있다.
CREATE TABLE ex1 (SELECT * FROM employees.employees);
CREATE TABLE ex2 (SELECT * FROM employees.employees);
CREATE TABLE ex3 (SELECT * FROM employees.employees);
대략 30만 건이 있는 employees 테이블을 복사해서 3개의 테이블을 만들었다.
DELETE FROM ex1;
DROP TABLE ex2;
TRUNCATE TABLE ex3;
DELETE를 사용했을 때만 시간이 오래 걸리는 것을 확인할 수 있다.
DML인 DELETE는 트랜잭션 로그를 기록하는 작업 때문에 오래 걸린다.
반면 DDL인 DROP과 TRUNCATE는 트랜잭션을 발생시키지 않아 빠르다.
DROP은 테이블 자체를 삭제하지만 TRUNCATE는 테이블의 전체 데이터를 삭제하고 테이블 구조는 남긴다.