isolationconcurrencylock

database isolation level을 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

Dirty read는 무엇인가요?

부가 설명

Dirty Read: commit되지 않은 값을 읽음
Non-repeatable Read: 같은 row를 두 번 읽었는데 값이 달라짐
Phantom Read: 같은 조건 조회에서 row 집합이 달라짐

isolation level은 이런 현상을 어디까지 허용할지와 관련됩니다.

각 DBMS는 isolation level을 구현하는 방식이 다를 수 있습니다. lock 기반일 수도 있고 MVCC를 사용할 수도 있습니다. 그래서 이름만 같아도 세부 동작이 다를 수 있습니다.

Isolation level의 핵심은 정합성과 동시성의 trade-off입니다. 격리를 강하게 하면 이상 현상은 줄어들지만 lock이나 대기 비용이 커질 수 있습니다.

한 줄 정리

Isolation level은 transaction 동시 실행에서 어떤 이상 현상을 허용할지 정하는 정합성과 성능의 trade-off입니다.