>> Transaction
- 더 이상 나눌수 없는 작업의 단위
- N개의 Transaction이 모두 성공하지 않으면 Transaction이 실행되기 전으로 Rollbak해야 한다.
- N개의 트랜잭션을 1개의 트랜잭션으로 묶어서 처리해야한다.
◆ 트랜잭션의 속성 (원일이는 지독해)
> 원자성(Automicity) : 나눌수 없는 하나의 작업으로 다뤄줘야 한다(입금/출금 ==> 하나의 작업으로)
> 일관성(Consistency) : Tx가 수행전과 후가 일관된 상태를 유지해야 한다.
> 독립성(Isolation) : 각 Tx는 독립적으로 수행되어야 한다. (Tx가 다른 Tx에 영향을 끼치면안된다.)
- Isolation Level
--- READ UNCOMMITED : 커밋되지 않은 데이터도 읽기 가능 ==Dirty Read
--- READ COMMITRED : 커밋된 데이터만 읽기 가능
--- REPEATABLE READ : Tx가 시작된 이후 변경은 무시됨 (Default)
--- SERIALIZABLE : 한번에 하나의 Tx만 수행 ( 직렬화 )
> 지속성(Duration) : 성공한 Tx의 결과는 유지되어야 한다.
>> Commit : 작업 내용을 DB에 영구적으로 저장
> AutoCommit : 명령 실행 후, 자동으로 커밋이 수행(Rollback 불가)[Default]
> 수동커밋 : 명령 실행 후 , 명시적으로 Commit또는 Rollback을 입력 [명령어 - set autocommit ]
>> Rollback : 최근 변경사항을 취소(마지막 커밋으로 이동)
MySQL
'dev > Spring' 카테고리의 다른 글
[Spring] @Transactional-1 (0) | 2022.07.12 |
---|---|
[Spring] AOP-2 (0) | 2022.07.12 |
[Spring] Di 따라하기 4 (0) | 2022.06.22 |
[Spring] Di 따라하기 3 (0) | 2022.06.22 |
[Spring] Di 따라하기 2 (0) | 2022.06.22 |