집 >데이터 베이스 >MySQL 튜토리얼 >[MySQL] MVCC 다중 버전 동시성 제어로 구현된 트랜잭션
다중 버전 동시성 제어 다중 버전 동시성 제어인 MVCC는 일반적으로 데이터베이스 관리 시스템에서 프로그래밍 언어로 트랜잭션 메모리를 구현하기 위해 데이터베이스에 대한 동시 액세스를 달성하는 데 사용되는 동시성 제어 방법입니다.
1. 비차단 읽기 작업을 달성하기 위한 통합된 구현 표준이 없으며 쓰기 작업은 필요한 행만 잠급니다
2. 이는 특정 시점의 데이터 스냅샷을 저장하여 구현됩니다
3. 제어 및 비관적 동시성 제어
4.Innodb의 mvcc에는 각 트랜잭션마다 증가하는 버전 번호가 있습니다. 레코드의 각 행 뒤에 숨겨진 필드의 두 열을 추가하면 두 열은 생성 버전 번호와 삭제 버전 번호, 저장 작업 버전 번호가 됩니다.
5. 트랜잭션 추가, 삭제, 수정 및 체크인은 2열 버전 번호 필드에서 작동합니다
insert는 현재 트랜잭션 버전 번호를 행에 저장하여 새로 삽입된 각 행에 대한 버전 번호 필드를 생성합니다.
update는 저장할 새 행을 삽입합니다. 현재 트랜잭션 생성 버전 번호, 수정된 원본 행 데이터의 삭제된 버전 번호가 이 트랜잭션의 버전 번호입니다.
delete 수정된 행의 삭제된 버전 번호 필드가 이 트랜잭션의 버전 번호입니다.
select 현재 트랜잭션 버전보다 작거나 같은 생성된 버전 번호 필드를 쿼리합니다. 데이터 이 트랜잭션 이전에 레코드가 존재했는지, 이 트랜잭션에 새로 삽입되었는지 확인하세요.
버전 번호 필드가 존재하지 않거나 다음보다 큰 데이터를 쿼리하고 삭제합니다. 이 거래 전에 기록이 삭제되지 않았는지 확인하기 위해 현재 버전
6. 이러한 디자인은 잠금이 필요하지 않으며 읽기 및 작동 성능은 좋지만 추가 저장 공간이 필요합니다
7.mvcc는 두 가지 격리에서만 작동합니다. : REPEATABLE READ 및 READ UNCOMMITED는 항상 최신 데이터를 읽습니다. SERIALIZABLE 쌍은 모두 잠겼습니다
[권장 과정: mysql 비디오 튜토리얼]
위 내용은 [MySQL] MVCC 다중 버전 동시성 제어로 구현된 트랜잭션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!