자격증/SQLD

[SQL 첫걸음] 19강. 물리삭제와 논리삭제

동호다찌 2022. 4. 4. 09:26

물리삭제와 논리삭제

  • 데이터베이스에서 데이트를 삭제할 때는 ‘물리 삭제’와 ‘논리 삭제’ 두 가지 방법이 있다

두 종류의 삭제방법

  • 물리삭제 : DELETE 명령을 사용해 직접 데이터를 삭제하는 방식
  DELETE FROM 테이블명 WHERE 조건
  • 논리삭제 : 테이블에 '삭제플래그'와 같은 열을 만들어 UPDATE 명령으로 '삭제플래그' 값을 유효하게 갱신해두는 방식. 실제 데이터는 남아있지만 삭제가 설정된 행을 제외하고 SELECT하는 명령 시행
// 예를들어 회원테이블에 삭제일시라는 컬럼이 있을 경우
UPDATE members
SET delete_at = now() --> 현재시간
WHERE mber_id = 1 --> 조건

논리삭제는 실제로 데이터를 삭제하지 않기 때문에 삭제 이전으로 되돌릴 수 있다는 장점이 있다. 하지만 삭제해도 DB의 저장공간이 늘어나지 않고, 오히려 크기가 증가함에 따라 속도가 느려지는 단점이 있다.

삭제방법 선택하기

두 삭제방법 모두 장단점이 있기 때문에 데이터 특성과 용도에 따라 선택하여 사용해야 한다.

  • 예를 들어 개인정보를 취급하는 테이블은 물리삭제를, 쇼핑 사이트의 주문 취소는 주문통계에는 영향을 미치므로 논리삭제를 주로 사용한다.