inflearn logo
강의

Course

Instructor

[MMORPG Game Development Series with C# and Unity] Part 5: Database

Wait and lock

락과 트랜잭션 격리수준 차이는 뭔가여?

534

lchbest107229

33 asked

0

db커넥션 여러개가 접근해야 할때

 

락을 사용해야 하나여

아니면 트랜잭션 격리수준의 높은레벨을 사용해야 할까요

 

둘의 차이를 모르겠습니다 ㅠ

sql dbms/rdbms

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

락(Lock)과 트랜잭션 격리 수준(Transaction Isolation Level)은 데이터베이스의 동시성 제어를 위해 사용되는 두 가지 다른 메커니즘입니다.

락은 특정 데이터베이스의 자원 또는 데이터에 대한 접근을 제어하여 동시성 문제를 방지하는 방법입니다. 즉, 어떤 트랜잭션이 특정 데이터를 사용하고 있을 때, 다른 트랜잭션이 그 데이터를 변경하거나 읽지 못하도록 제한하는 것입니다. 락에는 여러 유형이 있으며, 각각 사용 목적과 상황에 따라 다릅니다.

트랜잭션 격리 수준은 트랜잭션이 다른 트랜잭션에서 변경하거나 생성한 데이터를 ‘얼마나 볼 수 있는지’ 결정하는 속성입니다. 격리 수준이 낮으면 동시성은 높아지지만, 데이터베이스에서 발생할 수 있는 문제(더티 리드, 논리적 일관성 없는 리드 등)의 위험이 높아집니다. 반면, 격리 수준을 높이면 이러한 문제의 위험을 줄일 수 있지만, 동시성이 낮아질 수 있습니다.

따라서, 여러 db커넥션이 동시에 접근해야 할 때 락과 트랜잭션 격리 수준 중 어떤 것을 사용할지 결정하는 것은, 동시성과 데이터 일관성 사이의 트레이드오프를 이해하고, 애플리케이션의 요구 사항에 가장 적합한 방법을 선택하는 것에 달려 있습니다.

사과일광욕님의 경우, 락을 사용하면 특정 오퍼레이션을 보호할 수 있고, 필요한 경우에만 특정 데이터에 대한 접근을 제한할 수 있습니다. 반면, 트랜잭션 격리 수준을 조정하여 더 넓은 범위에서의 데이터 일관성을 보장하고 동시성을 제어할 수도 있습니다. 이 두 기법은 상황에 따라 서로 보완적으로 사용될 수 있습니다.

최신 하드웨어에서 SQL Express 설치에러 해결법

0

59

1

인벤토리 테이플 데이터가 엄청 많아지면

0

97

2

DISTINCT의 행 개수와 COUNT(DISTICNT )의 결과가 왜 차이나는지 궁금합니다.

0

101

1

conect시 신뢰할 수 없는 기관에서 인증서 발급 오류 뜨시는분들

0

319

1

PRIMARY KEY와 CLUSTERED INDEX의 차이

0

330

1

외래 키 질문이 있습니다.

0

385

1

게임 프로젝트와 연동하는 강의 내용은 포함되어 있지 않는 건가요?

0

565

1

윈도우 함수는 SELECT에서만 사용가능한가요?

0

452

1

데이터 베이스가 만들어지지 않을 때

9

799

3

sql 강의 관련 질문

0

679

1

강의내용 외의 질문이 있습니다

0

582

1

sinter

0

360

1

테이블 여러개랑 조인

0

372

1

서버 컴퓨터 스펙에 따라서 성능 차이가 심한가요?

0

798

1

Non-Clustered 에서 clustered index 추가시

0

438

1

UNIQUE INDEX와 PRIMARY KEY의 기능적차이

0

583

1

Part5: 데이터베이스_ SSMS 입문 테이블작성 오류에관하여

2

903

2

인덱스의 저장 방식에 대해서 질문이 있습니다!

1

538

1

MSSQL vs AWS

0

364

1

join 관련 질문입니다.

0

287

2

Inner Join 질문

0

305

1

데이터베이스 원리는 CAP이론을 비유하여 설명하신 건지 궁금합니다.

1

401

0

CLUSTERED INDEX

1

303

1

집계함수 설명 중 집합의 의미가...

0

286

1