hard delete와 soft delete라는 단어를 듣게 되었다.
삭제하는데 hard하게 하는건 뭐고 soft하게 하는건 뭐고,, 무슨 차이인지 궁금해서 찾아보았다.
일단 DB에서 삭제 방법은 hard delete(물리삭제)와 soft delete(논리삭제)가 있다.
hard delete | soft delete |
레코드를 전체적으로 삭제 | 데이터 사용 유무값(flag)만 바꿔 사용자에게 보이지 않게 하는 삭제 |
데이터베이스에서 DELETE 키워드 이용 | DB에서 특정 column 사용 여부를 UPDATE 시켜 사용자에게 보이지 않게 처리 |
장점 : 삭제 처리를 통해 테이블 디스크의 사용량 줄일 수 있음 + SQL 작성 편리함 / 단점 : 데이터 복구 불가능 | 장점 : 복구가 필요한 데이터의 경우 손쉽게 복구 가능 / 단점 : SQL 작성의 번거로움, 삭제 처리가 돼도 테이블 디스크 사용량이 떨어지지 않음 |
알고보니, 나도 soft delete를 사용하고 있었다
is_active 컬럼을 두어 해당 팝업 데이터를 삭제하는 것이 아닌 노출 유무만 boolean(flag)값으로 판별하는 것이다.
참고 https://132262b.github.io/post/hard-delete-and-soft-delete/
'Backend > DB' 카테고리의 다른 글
created_at과 updated_at에서 날짜가 찍혀서 안나오는 문제 (0) | 2023.10.27 |
---|---|
table이나 column drop할때 오류 최소화 하는법 (0) | 2023.10.19 |
Docker가 바라보는 script를 잘 파악하자 (feat. role "postgres" does not exist) (0) | 2023.08.23 |
UUID의 역할 (DB 그리고 로컬메모리) (0) | 2023.03.21 |
'비율(ratio)'를 DB에 저장하려고 할 때 그 기준을 잡으려면? (0) | 2023.03.16 |