MySQL의 Deadlock
추천 과정: MySQL 튜토리얼.
교착 상태의 핵심은 두 개 이상의 세션이 잠기는 순서가 일관되지 않는다는 것입니다.
그러면 교착 상태 문제를 해결하는 열쇠는 다음과 같습니다: 서로 다른 세션을 순서대로 잠그는 것
사례
요구 사항: 투자금을 여러 부분으로 나누어 차용자에게 무작위로 분배합니다.
비즈니스 프로그램의 초기 아이디어는 다음과 같습니다.
투자자가 투자한 후 금액을 무작위로 여러 부분으로 나눈 다음 차용자 테이블에서 무작위로 몇 개를 선택한 다음 선택을 통해 차용자 테이블을 업데이트합니다. 내부 잔액 등을 업데이트합니다.
예를 들어 두 명의 사용자가 동시에 투자하는 경우 사용자 A의 금액을 무작위로 2개로 나누어 차용자 1, 2에게 할당합니다. 잠금 순서도 다르며 당연히 교착 상태가 빨리 나타납니다.
이 문제에 대한 개선 방법은 매우 간단합니다. 할당된 모든 차용자를 한 번에 잠그면 됩니다.
업데이트를 위해 (xx,xx,xx)의 id가 있는 xxx에서 *를 선택하세요
mysql의 목록 값은 자동으로 작은 것부터 큰 것까지 정렬되며 잠금도 작은 것부터 큰 것까지 하나씩 추가됩니다. 크다
위 내용은 어떤 상황에서 mysql이 교착 상태에 빠지나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!