트랜잭션의 개념이해

트랜잭션은 어떤 연산들을 하나로 묶어서 실행되거나 실행되지 않도록 원자성을 보장하는 것이다.

예를 들어 계좌이체를 할때에 A → B로 5000원을 보내면 A가 5000이 빠지고 B가 5000이 느는 것은 하나의 연산으로 보아야 한다. 이때 트랜잭션이 활용된다.

위의 내용이 핵심이고 따로 일관성, 격리성, 지속성이 있다.

트랜잭션을 시작하려면

set autocommit false를 해주면 된다.

반영하려면 commit

취소하려면 rollback을 해주면 된다.

만약 커밋이 되지 않았다면 타 세션에서는 그것을 확인 할 수가 없다.

Untitled

중간에 트랜잭션이 어떤 작업을 하고 있을때 다른 트랜잭션이 끼어들어서 정합성이 깨지는 경우가 발생할 수 있는데

이때 lock이라는 개념이 사용된다. 어떤 트랜잭션이 연산을 실행하고 있을떄 lock을 들고 있게 되는데 그러면 다른 트랜잭션을 락이 없으므로 연산을 기다리게 된다. 이렇게 정합성을 확보할 수 있다.