DBMS/RDBMS - MySQL

[MySQL] 물리삭제와 논리삭제

소노 2023. 9. 11. 11:44

데이터베이스에서 데이터를 삭제하는 방법에는 크게 두가지가 있다.

-물리삭제

-논리삭제


물리삭제란

-> SQL DELETE 명령을 사용하여 데이터를 직접 삭제하는 방식이다.

(즉 데이터 자체를 직접 삭제하는 방식이다.)


논리삭제란

-> 삭제 플래그 라는 별도의 Column을 만들고 데이터를 직접 삭제하는 대신

SQL UPDATE 명령을 사용하여 삭제 플래그 안의 값을 변경하는 방식이다.

(즉 데이터 자체는 삭제 되지 않고 보존된다.)


각자의 장단점을 알아보자.

  물리삭제 논리삭제
장점 삭제하면 데이터베이스의 저장공간이 확보된다. 데이터를 삭제하지 않아 전 상태로 간단히 되돌릴 수 있다.
단점 데이터를 직접 삭제 하므로 복구가 까다롭다. 데이터가 직접 삭제되는 것이 아니므로 데이터베이스의 크기가 증가할 수록 검색속도가 떨어지게 된다.
또, 삭제 작업 인데도 불구하고 UPDATE 명령을 실행하기 때문에 혼란을 야기할 수도 있다.

그렇다면 물리삭제와 논리삭제를 어떠한 상황일 때 구분하여 사용 하는 것 일까?

 

사용자 탈퇴(물리삭제)

개인정보가 담겨있는 사용자가 탈퇴할경우 개인정보 유출 방지 하기위해서 물리삭제가 적절하다.

 

사용자 주문취소(논리삭제)

특정 정보가 완전히 불필요하다고 판단되지 않는 이상 논리삭제를 이용하는 것이 적절하다.

관련 통계를 낼 때 유용하게 사용 할 수 있기 때문이다.