일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Galera Cluster
- 알고리즘
- 백준
- OS
- Heap
- C
- 컴퓨터구조
- JavaScript
- Algorithm
- react
- mongoDB
- IT
- 운영체제
- JPA
- Spring
- MySQL
- 디자인 패턴
- Java
- spring webflux
- 자바
- 자료구조
- 네트워크
- Proxy
- 파이썬
- Data Structure
- MSA
- redis
- design pattern
- Kafka
- c언어
- Today
- Total
목록Transaction (2)
시냅스

이 글에서는 MySQL의 Repeatable Read 격리 수준에서 트랜잭션 동작 방식과 트랜잭션 락킹에 대해 설명합니다. 이해를 돕기 위해 간단한 예시를 사용하며 설명합니다. Repeatable Read Repeatable Read 는 InnoDB 기본 격리 수준입니다. 트랜잭션 내에 읽기에 대한 일관성을 스냅샷을 기준으로 보장하며 InnoDB 에서는 Next Key Lock 을 사용하며 Phantom Read 까지 예방합니다. 스냅샷을 기준으로 일관성을 보장한다는 것은, 현재 실행하고 있는 트랜잭션 id 보다 전의 id 를 갖는 언두 로그를 참조한다는 뜻입니다.. 따라서 SELECT 시에 다른 트랜잭션에서 업데이트하며 해당 데이터가 바뀌더라도 현재의 트랜잭션에서는 일관성을 유지합니다. 위와 같은 상황..

트랜잭션 Transaction 이란 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장하는 것을 뜻한다. 은행 송금을 예시로 하자면, 송금하는 주체는 돈이 감소해야 하고, 동시에 송금을 받는 주체는 돈이 증가해야 한다. 두 트랜잭션이 성공적으로 수행됐다면 commit 해야 하고, 하나라도 실패했다면 rollback해야 한다. 트랜잭션 ACID 트랜잭션은 원자성 (Atomicity), 일관성 (Consistency), 격리성 (Isolation), 지속성 (Durability) 를 보장해야 한다. 원자성 트랜잭션 내에서 실행한 작업은 마치 하나의 작업인 것처럼 모두 성공하거나 실패해야 한다. 일관성 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들면 데이터베이스에서 정한 무결성 제약 ..