제시카 2015.09.20 17:27 Views : 3185
TRUNCATE TABLE 과 delete 와의 차이점을 알 수 있을까요
그리고 실수로 TRUNCATE TABLE 또는 delete 작업을 했을 때
복구가능성이 어느것이 높을까요?
2015.09.22 11:29
차이점입니다..
Delete : 데이터만 삭제. Commit이전에는 Rollback이 가능함. Truncate : 테이블을 최초 생성된 초기상태로 만듬. Rollback 불가능. 복구는 delete 가 월등히 높을듯하네요. ( 실제 테스트해보진 않았지만..-_-; )
실수로 데이터 삭제시 복구하는건
테이블 trigger event 로 처리하면 수월하실거에요.
table_hist 라는 테이블을 만들어두고
(원본 테이블명이 table 이라고 가정시)
sql단의 table trigger 이벤트에서
insert,update,delete 가 일어났을때
모든데이터들을 hist 테이블에 밀어넣어두시면
(물론 컬럼이 하나 추가되겠죠. I/U/D 를 알수 있는 컬럼을 두고)
실수로 삭제했을시, hist 테이블을 토대로
얼마든지 복구가 가능하니까요.
(단 hist 테이블의 데이터를 삭제한 경우는 예외-_-;)
물론, history 테이블에 데이터 쌓는건으로 인해
데이터 핸들링이 일어나는 경우 기존보다
속도는 조금 느려집니다.^^;
참고만하세요..
cmd_comment_vote_user Upvote0 Downvote0
2015.09.24 12:40
Keep me signed in.
차이점입니다..
Delete : 데이터만 삭제.
Commit이전에는 Rollback이 가능함.
Truncate : 테이블을 최초 생성된 초기상태로 만듬.
Rollback 불가능.
복구는 delete 가 월등히 높을듯하네요. ( 실제 테스트해보진 않았지만..-_-; )
실수로 데이터 삭제시 복구하는건
테이블 trigger event 로 처리하면 수월하실거에요.
table_hist 라는 테이블을 만들어두고
(원본 테이블명이 table 이라고 가정시)
sql단의 table trigger 이벤트에서
insert,update,delete 가 일어났을때
모든데이터들을 hist 테이블에 밀어넣어두시면
(물론 컬럼이 하나 추가되겠죠. I/U/D 를 알수 있는 컬럼을 두고)
실수로 삭제했을시, hist 테이블을 토대로
얼마든지 복구가 가능하니까요.
(단 hist 테이블의 데이터를 삭제한 경우는 예외-_-;)
물론, history 테이블에 데이터 쌓는건으로 인해
데이터 핸들링이 일어나는 경우 기존보다
속도는 조금 느려집니다.^^;
참고만하세요..