락과 트랜잭션 격리수준 차이는 뭔가여?
534
33 asked
db커넥션 여러개가 접근해야 할때
락을 사용해야 하나여
아니면 트랜잭션 격리수준의 높은레벨을 사용해야 할까요
둘의 차이를 모르겠습니다 ㅠ
Answer 1
0
안녕하세요, 인프런 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

