SW/MySQL

MySQL : 트랜잭션, rollback, commit, save point, truncate : 개념, 사용 방법

얇은생각 2020. 1. 30. 07:30
반응형

mysql

 

트랜잭션

데이터 베이스에서 데이터 처리의 한 단위를 트랜잭션이라고 부릅니다. 대부분의 데이터 베이스는 데이터를 저장하고 수정하고 삭제하는 작업을 바로 물리적인 하드디스크에 저장된 데이터에 반영하지 않습니다. 개발자의 실수로 잘못된 명령문을 입력하였을 경우, 다시 원래 상태로 되돌리기 위한 안전장치입니다.

따라서 개발자가 커밋이라는 작업을 하기 전까지 입력한 명령문은 메모리에서만 동작합니다. 즉, 물리적인 하드디스크에 반영하지 않습니다. 커밋 작업이 발생하면 그떄 하드디스크에 반영하게 됩니다. 개발자가 데이터에 대한 작업을 하기 위해 입력하는 명령문들의 시작부터 커밋까지를 하나의 트랜젝션이라고 합니다.

 

 

RollBack

데이터의 저장, 삭제, 수정 등의 작업을 하고 난 후 원래의 형태로 되돌리는 작업을 의미합니다. 커밋이라는 작업을 하고 난 이후 RollBack 작업을 해도 원래의 형태로 되돌리 수 없습니다. WorkBench 등의 프로그램에서는 자동으로 커밋 작업이 발생합니다. RollBack을 해도 원래의 형태로 되돌릴수가 없습니다.

 

 

Commit

하나의 트랜잭션을 물리적인 데이터 베이스에 적용하는 작업입니다. 이 작업을 하게 되면, RollBack을 해도 되돌릴 수 없습니다. 일반적으로 개발자가 만드는 프로그램들은 자동으로 커밋이 발생합니다.

 

 

SavePoint 

save point를 지정하면 rollback 시 지정된 위치로 복원할 수 있습니다. savepoint 명령어로 지점을 지정하고 rollback 명령어로 복원합니다.

 

 

truncate

truncate를 사용하면 지정된 테이블의 모든 로우를 삭제합니다. delete 문과 다른점은 delete 문은 데이터베이스에 바로 반영하지 않으므로 rollback이 가능합니다.

그러나 truncate는 바로 데이터베이스에 반영하므로 rollback이 불가능합니다.

반응형