본문 바로가기

공부 기록/영상 후기

(1부) DB MVCC 개념 설명합니다 ! MVCC가 각각의 isolation level에서 어떻게 동작하는지도 MySQL & postgreSQL 예제와 함께 설명합니다

https://youtu.be/wiVvVanI3p4

MVCC(Multiversion Concurrency Control)

- 커밋된 데이터만 읽는다.

- 데이터를 읽을 때 특정 시점 기준으로 가장 최근에 커밋된 데이터를 읽는다.(MySQL에서는 Consistent read라고 함)

- 데이터 변화(write) 이력을 관리한다.

- read와 write는 서로를 block하지 않는다.

  

Isolation level

read committed : read하는 시간을 기준으로 그 전에 커밋된 데이터를 읽는다.

repeatable read : 트랜잭션 시작 시간을 기준으로 그 전에 커밋된 데이터를 읽는다.

serializable : MySQL => MVCC로 동작하기 보다는 lock으로 동작한다. PostgreSQL => SSI(Serializable Snapshot Isolation) 기법이 적용된 MVCC로 동작한다.

read uncommitted : MVCC는 커밋된 데이터를 읽기 때문에 이 level에서는 보통 MVCC가 적용되지 않는다. PostgreSQL => read committed level처럼 동작한다.