Transaction

yshjft·2023년 1월 28일
0

데이터베이스 

목록 보기
9/10

트랜잭션이란?

  • 데이터베이스에 상태를 변화시키는 작업의 논리적인 단위
    • 하나로 처리해야하는 명령문들의 그룹
    • 분할 할 수 없는 업무처리의 단위
  • 트랜잭션은 ACID 특징을 보장해야 한다.
    • 단 상황에 성능(동시성)을 위해 희생시킬 수 있다(by isolation level)

일관성(Consistency)과 동시성(Concurrency)

  • 트랜잭션에서 일관성과 동시성은 트레이드오프 관계
    • 일관성 → 데이터 꼬임 방지
    • 동시성 → 성능을 향상

트랜잭션 사용 이유

  • 데이터 부정합 방지
    • 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함
    • 병렬로 처리하는 상황에서 부정합을 방지하고자 사용(병렬로 처리를 하지 않는다면 성능이 많이 떨어진다)
  • Isolation Level
    • 격리 수준 설정을 통한 격리성과 동시성 조절

Lock

  • 트랜잭션 처리의 순차성을 보장하기 위한 방법

  • 락을 이용하여 여러 사용자가 동일한 데이터를 액세스할 때 작업이 순차적으로 처리되도록 함

    • 락을 이용하여 동시성을 제어한다.
  • 락을 너무 오래 가진다 → 동시성이 떨어진다 → 성능이 떨어진다.

  • 공유락(shared lock)

    • 동시에 읽기O, 쓰기X
  • 배타 락(exclusive lock)

    • 동시에 읽기X, 쓰기X

참고

profile
꾸준히 나아가자 🐢

0개의 댓글