오래 못 할 짓 하지 않기
[ 데이터베이스 ] 19. MVCC 개념 (2) MYSQL 본문
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를 쓴다.
(출처)
유튜브 쉬운코드
'3학년 1학기 > 데이터베이스(DB)' 카테고리의 다른 글
[ 데이터베이스 ] 21. Functional Dependency (FD : 함수 종속) (0) | 2024.02.08 |
---|---|
[ 데이터베이스 ] 20. DB 테이블을 잘못 설계한다면? (0) | 2024.02.07 |
[ 데이터베이스 ] 18. MVCC 개념 (0) | 2024.02.06 |
[ 데이터베이스 ] 17. LOCK을 활용한 concurrency control ( 2PL protocol ) (0) | 2024.02.05 |
[ 데이터베이스 ] 16. Isolation Level (0) | 2024.01.14 |