본문 바로가기

프로그래밍 언어/SQL

[MySQL] 물리삭제(DELETE)와 논리삭제(UPDATE)

2023-04-05 TIL 19강 물리삭제와 논리삭제

 

데이터베이스에서 데이터를 삭제하는 방법은 용도에 따라 크게 '물리삭제'와 '논리삭제'로 나뉜다.

이번 내용은 시스템 설계 분야에 관한 것으로, 시스템을 구축할 때 자주 사용하는 말이다.

물리삭제

  • SQL의 DELETE명령을 사용해 직접 데이터를 삭제하는 것

 

논리삭제

  • 테이블에서 실제로 행을 삭제하는 대신, UPDATE 명령을 이용하여 값을 갱신하는 것
  • '삭제플래그' 사용, 참조할 때 삭제플래그가 삭제로 설정된 행을 제외
  • 결과적으로 해당 행이 삭제된 것처럼 보임
  • 논리삭제의 장점은 데이터를 삭제하지 않기 때문에 삭제되기 전의 상태로 간단히 되돌릴 수 있다는 것
  • 논리삭제의 단점은 삭제해도 데이터베이스의 저장공간이 늘어나지 않는 점과 오히려 데이터베이스의 크기가 증가함에 따라 검색속도가 떨어진다는 점

 

삭제방법 선택하기

  • 개인정보를 다루는 시스템에서는 사용자가 탈퇴한 경우, 개인정보의 유출을 미연에 방지하기 위해 물리삭제가 안전할 것
  • 쇼핑 사이트에서 사용자가 주문을 취소해도 발주는 된 것이므로, 해당 정보가 완전히 불필요한 것이라고 할 수 없다. 따라서 논리삭제가 더 적합할 것
  • 상황에 따라 용도에 맞게 데이터 삭제 방법을 선택하자

 

 

DELETE, UPDATE 참고

https://meilicoding.tistory.com/39

 

[MySQL] 삭제하기(DELETE)

2023-03-29 TIL 17강 삭제하기 - DELETE DELETE FROM 테이블명 WHERE 조건식 : 삭제하기 WHERE 조건식을 사용하지 않고 DELETE 명령을 실행하면 테이블의 모든 데이터가 삭제됨 삭제는 행 단위로 수행됨(열만 삭

meilicoding.tistory.com

https://meilicoding.tistory.com/40

 

[MySQL] 데이터 갱신하기(UPDATE)

2023-04-03 TIL 18강 데이터 갱신하기 - UPDATE UPDATE [테이블명] SET [업데이트할 열명=값] WHERE [행 조건식] : 데이터 갱신 UPDATE는 셀 단위로 데이터 갱신 가능 WHERE구를 생략하면 모든 행이 갱신됨 SET구를

meilicoding.tistory.com