DB 2

조인 수행 원리(NL, Hash, Sort Merge)

NL Join(Nested Loop Join) 중첩된 반복문과 유사한 방식으로 조인을 수행 선행 테이블에서 주어진 조건을 만족하는 행을 하나씩 접근하며 추출된 값으로 후행 테이블에 조인 작업을 수행 반복문의 외부에 있는 테이블을 선행 테이블(=외부 테이블)이라 하고 내부에 있는 테이블을 후행 테이블(=내부 테이블)이라 한다. 수행 방식 선행 테이블에서 주어진 조건을 만족하는 첫번째 행을 찾음 (인덱스를 이용할 수 있는 경우, 인덱스를 사용하여 엑세스 할 수 있음) 선행 테이블에서 찾은 행의 조인 컬럼을 가지고 후행 테이블에 존재하는지 확인 후행 테이블의 인덱스에서 해당 조인 값이 존재하는지 확인 인덱스에서 추출한 레코드 식별자를 이용하여 후행 테이블에 엑세스 및 조인이 성공하는 경우, 추출 버퍼에 저장 ..

DB 2021.04.02

Optimistic Lock vs Pessimistic Lock

DBMS MySQL Storage Engine Inno DB 문제 정의 UPDATE T SET value = :value WHERE id = 1 위와 같이 T 테이블의 값을 수정하는 쿼리가 있는 경우, 여러 트랜잭션에서 해당 쿼리를 실행한다면 id가 1인 row의 값으로는 가장 마지막으로 commit 실행된 트랜잭션에서 수정한 값이 들어가게 된다. (아래의 경우, transaction2에서 실행한 update의 경우, transaction1에서 commit을 수행하기 전까지 block되어 있게 된다. - innoDB row level exclusive lock) # transaction 1 start transaction; # 1 update T # 2 set value = 200 where id = 1..

DB 2021.03.18