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를 쓴다.
(출처)
유튜브 쉬운코드