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
'프로그래밍 언어 > SQL' 카테고리의 다른 글
[MySQL] 합계(SUM), 평균(AVG), 최솟값(MIN), 최댓값(MAX) (0) | 2023.04.10 |
---|---|
[MySQL] 행 개수 구하기(COUNT), 중복 제거하기(DISTINCT) (0) | 2023.04.07 |
[MySQL] 데이터 갱신하기(UPDATE) (0) | 2023.04.03 |
[MySQL] 삭제하기(DELETE) (0) | 2023.03.29 |
[MySQL] 행 추가하기(INSERT), NOT NULL 제약, DEFAULT (0) | 2023.03.17 |