나의 개발 성장일지
DB격리수준 본문
1.트랜잭션 :일이 처리가 되기위한 가장 작은 단위
1-1서비스->여러트랜잭션이 모인 트랜잭션
1-2 오라클은 COMMIT된거만 READ를 한다.
2 트랜잭션이끝나기전 데이터요청
2-1 A가 트랜잭션을 시작하고 UPDATE를하면 COMMIT이 되기전까지 11번에 임꺽정으로만 SELECT가능하다
2-2 현재까지 COMMIT된 데이터를 UNDO영역에 한번더 저장한다
2-3 B는 UNDO영역에서 데이터를 구한다.
3. 부정합
3-1 트랜잭션이 실행되는동안 동일한 select시 같은데이터가나와야함
3-2 동일한 SELECT동안 데이터가 보였다안보였다->팬텀리드
4.MYSQL이 부정합을 방지하는 방법 ->REPEATABLE COMMIT
4-1 READ COMMIT은 UNDO영역에 COMMIT된 데이터를 가져온다
4-2 REPEATABLE COMMIT 은 UNDO영역에 자기보다 앞에 트랜잭션이 넣은데이터만 가져온다
->자기트랜잭션 순서보다 먼저앞선애들데이터만 가져옴
5스프링에서 정합성 지키기
5-1 @Transactional을 붙이면 REPEATABLE COMMIT을 따른다.
'개인 공부 > 스프링부트 개념정리' 카테고리의 다른 글
스프링 작동원리복습 (0) | 2022.11.24 |
---|---|
스프링부트의 트랜잭션 (0) | 2022.11.24 |
Ajax를 사용하는이유 (0) | 2022.11.24 |
화면구현하기 (0) | 2022.11.23 |
Json데이터로 통신하기 (0) | 2022.11.23 |