본문으로 건너뛰기

물리 삭제(Hard Delete)와 논리 삭제(Soft Delete)

데이터베이스에서 데이터를 삭제하는 방법은 크게 물리 삭제(Hard Delete)논리 삭제(Soft Delete)가 존재합니다. 물리 삭제는 DELETE 명령어를 통해 직접 데이터를 삭제하는 방식이며, 논리 삭제는 UPDATE 명령을 사용하여 삭제 여부를 나타내는 컬럼을 수정하는 방식을 의미합니다. 즉 물리 삭제는 실제로 데이터를 삭제하는 반면, 논리 삭제는 데이터가 삭제되었음을 표시만 한다는 점에서 차이가 있습니다.

# 물리 삭제 처리
DELETE FROM member WHERE id = 1;

# 논리 삭제 처리와 조회
UPDATE member SET deleted_at = curdate() WHERE id = 1;
SELECT * FROM member WHERE deleted_at IS NULL;

✔️ 어떤 방식을 선택하는 것이 좋을까?

방식마다 장단점이 존재하기 때문에 상황에 맞는 선택을 하는 것이 좋습니다.

물리 삭제

실제로 데이터를 삭제하기 때문에 저장 공간을 새로 확보할 수 있으며, 테이블의 크기를 줄여 검색 속도 향상을 기대할 수 있습니다. 하지만, 데이터를 다시 복구하기 어렵다는 점과 삭제된 데이터가 비즈니스 의사 결정에 사용되기 어렵다는 단점이 있습니다.

논리 삭제

데이터를 삭제하지 않기 때문에 데이터 복구에 용이하고, 비즈니스 의사 결정에 사용될 수 있습니다. 하지만, 테이블에 데이터가 많아져 성능에 악영향을 줄 수 있고, 논리 삭제된 데이터를 제외하지 않고 조회하는 실수가 발생할 수 있다는 단점이 존재합니다.

Loading comments...