inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

200억건의 데이터를 MySQL로 마이그레이션 할 때 고려했던 개념과 튜닝 방법

DeadLock Case

lock의 순서를 지켜주자는 말의 뜻

해결된 질문

148

작성자 없음

작성한 질문수 0

0

안녕하세요? 질문이 있습니다.

6분 20초쯤 "여러 데이터를 수정할 때는 발생하는 lock의 순서를 지켜주자" 라는 말을 이해하지 못했습니다.

좀 더 자세히 설명 가능하실까요?


트랜잭션 X에서는 A -> B 를 수정한다.

트랜잭션 Y에서는 B -> A 를 수정한다.

Deadlock 발생할 가능성이 있음은 이해했습니다.

 

여기서 lock의 순서를 지킨다는 것이 무슨 뜻일까요?

트랜잭션 Y도 A -> B 흐름으로 수정하도록 만들라는 뜻인가요?

그렇다면 이해는 되지만, 트랜잭션 Y가 B -> A 로만 수정해야하는 상황이라면 어떻게 해소해야 하는지 궁금합니다.

 

감사합니다 :)

mysql mongodb mysql-workbench mysql-query

답변 1

0

July

일단 Lock에 대한 부분은 일반적인 서비스를 개발하시는데에 있어서 큰 문제가 발생하지 않습니다.

그러기 떄문에 사실 실무에서도 이러한 Lock에 대한 제어를 신경쓰고 쿼리를 작성하지는 않습니다.

 

하지만 특수한 케이스에 대해서 Lock을 얻고 처리를 해야 하는 경우도 있습니다.

예를들면 모든 데이터 수정이 Atmoic하게 동작을 해야 하는 부분이 있는것이죠

  • 예를들면 티켓팅 서비스 정도가 생각이 드네요

 

이렇게 Lock을 획득하고 제어를 해야 하는 상황에 대해서 표현을 하고 싶어서 저렇게 설명을 드렸는데 조금 혼동이 오실 수 있는 부분인거 같네요 ㅠㅠ 혼동을 드리게 되어서 죄송합니다.

Lock을 따로 제어하지 않는다면 일반적인 쿼리에 대해서 큰 문제없이 작성하셔도 됩니다. 그래서 막 심각하게 모든 부분을 고려하시지는 않아도 됩니다.

  • 모든것은 MySQL의 옵티마이저에게 책임을 떠넘기기로 하죠 ㅎㅎ

 

어느정도 도움이 되셨을까요?? 질문 감사합니다 :)

문제 풀이 1번 질문

0

11

0

twitterdb 연결이 안돼요

1

24

2

Kafka Cluster 구성도 질문

0

17

1

아주 작은 정오표 전달드립니다.

0

40

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

40

1

실제로 작은 기업에서 기획 롤

1

25

1

이제 인프런에서 강의 더 안산다. 후져....

0

40

1

order_product 까마귀발

0

42

2

소스코드 어디서 다운받아요?

0

52

5

답을언제쯤받아볼수있나요

0

47

2

공통 코드 , 계층 구조 질문

1

35

1

프로젝트가 없어요..

0

56

2

소스코드 빈 파일 문의드려요

0

41

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

52

1

자연키 vs 대리키 실무질문

0

28

1

SQL 기본 문법

0

45

2

프로젝트 의존 관계

0

53

2

1:N 관계에서 중간테이블 (연관엔티티)

0

55

2

공통코드 관련한 질문 드립니다.

0

70

1

Order BY 강의 12분 질문

0

90

2

Deadlock Case 4분 45초 질문

1

163

1

[Skip Locked For Session] 12:14초 내용 관련 질문

1

330

1

안녕하세요, 멀티컬럼인덱스 개념 후반부 내용이 이해가 가지 않아 질문 드립니다.

2

437

2

안녕하세요 좋은 강의 감사합니다. 혹시 실습 코드는 따로 제공 안되나요??

2

298

1