>  기사  >  데이터 베이스  >  mysql 교착 상태는 무엇을 의미합니까?

mysql 교착 상태는 무엇을 의미합니까?

王林
王林원래의
2020-06-24 15:28:503716검색

MySQL 교착 상태는 두 개 이상의 트랜잭션이 동일한 리소스에서 서로를 점유하고 서로가 점유한 리소스를 잠그도록 요청하여 악순환이 발생하는 것을 의미합니다. InnoDB 스토리지 엔진은 교착 상태 순환 종속성을 감지하고 즉시 오류를 반환할 수 있습니다. 교착 상태는 트랜잭션 중 하나를 부분적으로 또는 완전히 롤백해야만 해결할 수 있습니다.

mysql 교착 상태는 무엇을 의미합니까?

교착상태란 무엇인가요? 어떻게 생겼습니까?

두 개 이상의 트랜잭션이 동일한 리소스에서 서로를 점유하고 서로가 점유한 리소스에 대한 잠금을 요청하여 악순환이 발생하는 것을 말합니다.

(권장 튜토리얼: mysql 튜토리얼)

트랜잭션이 다른 순서로 리소스를 잠그려고 하면 교착 상태가 발생할 수 있습니다. 여러 트랜잭션이 동시에 동일한 리소스를 잠그는 경우에도 교착 상태가 발생할 수 있습니다.

잠금의 동작과 순서는 스토리지 엔진과 관련이 있습니다. 동일한 순서로 명령문을 실행하면 일부 스토리지 엔진은 교착 상태에 빠지고 일부는 그렇지 않습니다. 교착 상태의 원인은 두 가지입니다. 실제 데이터 충돌과 스토리지 엔진 구현 방식입니다.

교착 상태 감지

데이터베이스 시스템은 다양한 교착 상태 감지 및 교착 상태 시간 초과 메커니즘을 구현합니다. InnoDB 스토리지 엔진은 교착 상태 순환 종속성을 감지하고 즉시 오류를 반환할 수 있습니다.

교착 상태 복구

교착 상태가 발생한 후 트랜잭션 중 하나를 부분적으로 또는 완전히 롤백해야만 교착 상태를 해결할 수 있습니다.

InnoDB는 현재 최소 행 수준 배타적 잠금을 보유한 트랜잭션을 롤백하여 교착 상태를 처리합니다. 따라서 트랜잭션 애플리케이션을 설계할 때 교착 상태를 어떻게 처리할지 고려해야 합니다. 대부분의 경우 교착 상태로 인해 롤백된 트랜잭션만 다시 실행하면 됩니다.

위 내용은 mysql 교착 상태는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.