[DB] SavePoint / Truncate
DB 트랜잭션
- 데이터 처리의 한 단위
- DB는 데이터를 CRUD하는 작업을 기본적으로 메모리단에 적용하고 명령어를 통해 물리적인 하드디스크에 저장한다.
- 개발자가 rollback 해야하는 상황을 대비하여 설계됨
- commit 발생 시 물리적인 저장소에 적용됨
- 데이터에 대한 작업을 하기 위해 입력되는 명령문들의 시작부터 커밋까지가 하나의 트랜잭션
Rollback
- 데이터의 저장, 삭제, 수정 등의 작업을 하고 난 후 원래의 상태로 되돌리는 작업
- 커밋 이후에는 롤백을 해도 커밋 전으로 돌아갈 수 없다
Savepoint
- savepoint 를 지정하면 rollback 시 지정위치로 복원이 가능
- savepoint 로 지점 설정, rollback 명령어로 복원
Truncate
- 지정된 테이블의 모든 데이터를 지운다
- delete문은 db에 바로 반영되지 않고 메모리에 적용 후 커밋이 되어야 적용됨으로 rollback이 가능
- 하지만 truncate는 수행하는 순간 바로 커밋을 날려서 rollback이 불가능