오래 못 할 짓 하지 않기

[ 데이터베이스 ] 19. MVCC 개념 (2) MYSQL 본문

3학년 1학기/데이터베이스(DB)

[ 데이터베이스 ] 19. MVCC 개념 (2) MYSQL

쫑알bot 2024. 2. 6. 19:21
728x90

Locking Read

 

MYSQL에서는 Lost Update를 

Locking read 라는 기능을 이용하여 해결한다.

 

 

다음 쿼리문 같이 끝에 For Update를 붙이면

Lock 획득에 관련해서 Read , Write 둘 다 같은 Lock을 사용한다.

 

 

 

Select ... For Update;

▶ Exclusive Lock을 가진다. 

=  읽고 있으면 다른 곳에서 읽는 것도 안 됨 

 

 

Select ... For Share;

▶ Shared Lock을 가진다. 

=  쓰는 거만 동시에 안 하면 ㅇㅋ

 

 

 

Write Skew

( In Repeatable read )

 

Tx 두 개를 실행시켜보자

 

 

해결법

Locking Read를 사용한다.

 

 



PostSQL 에서는 데이터 수정 선빵친 놈이 있으면 늦은 놈이 Rollback

 



Isolation Level이 Serializable일 땐???

 

MYSQL 특징

 ● Repeatable read와 유사하다.

 ● Tx의 모든 '평범한' select문은 암묵적으로 [ select ... for share ] 처럼 동작한다.

   = 그냥 기본적으로 for share를 쓴다.

 

 

 

(출처)

유튜브 쉬운코드