이 글은 MySQL의 MVCC 사용법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
MVCC(다중 버전 동시성 제어)
기능: 많은 경우 잠금 작업을 피하고 오버헤드를 줄일 수 있습니다.
InnoDB
의 MVCC는 각 레코드 행 뒤에 두 개의 숨겨진 열, 행 생성 시간 및 행 만료 시간(삭제 시간)을 저장하여 구현됩니다. 여기서 시간은 시스템 버전 번호를 나타냅니다. 새로운 작업이 시작될 때마다 시스템 버전 번호가 자동으로 증가합니다. 트랜잭션 시작 시 시스템 버전 번호는 쿼리된 각 레코드 행의 버전 번호와 비교하는 데 사용되는 트랜잭션 버전 번호로 사용됩니다.
REPEATABLE READ 격리 수준에서 MVCC의 특정 작업
SELECT
InnoDB는 버전이 현재 트랜잭션 버전보다 이전인 데이터 행만 검색합니다(행의 시스템 버전 번호
줄의 삭제된 버전이 정의되지 않았거나 현재 버전 번호보다 큽니다. 이렇게 하면 트랜잭션이 읽은 행이 트랜잭션이 시작되기 전에 삭제되지 않습니다.
위의 두 조건을 충족하는 레코드만 쿼리 결과를 반환할 수 있습니다.
INSERT
InnoDB는 현재 시스템 버전 번호를 새로 삽입된 각 행의 행 버전 번호로 저장합니다.
UPDATE
InnoDB는 새 레코드 행을 삽입하고 현재 시스템 버전 번호를 행 버전 번호로 저장하며 현재 시스템 버전 번호를 행 삭제 식별자로 원래 행에 저장합니다.
DELETE
InnoDB는 현재 시스템 버전 번호를 삭제된 각 행의 삭제 식별자로 저장합니다.
이 기사는 여기에서 끝났습니다. 더 많은 흥미로운 콘텐츠를 보려면 PHP 중국어 웹사이트의 MySQL 튜토리얼 비디오 칼럼을 주목하세요!
위 내용은 MySQL의 MVCC 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!