MySQL의 MVCC 사용법 소개

不言
풀어 주다: 2019-03-22 11:30:51
앞으로
4088명이 탐색했습니다.

이 글은 MySQL의 MVCC 사용법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

MVCC(다중 버전 동시성 제어)

기능: 많은 경우 잠금 작업을 피하고 오버헤드를 줄일 수 있습니다.

InnoDB

의 MVCC는 각 레코드 행 뒤에 두 개의 숨겨진 열, 행 생성 시간 및 행 만료 시간(삭제 시간)을 저장하여 구현됩니다. 여기서 시간은 시스템 버전 번호를 나타냅니다. 새로운 작업이 시작될 때마다 시스템 버전 번호가 자동으로 증가합니다. 트랜잭션 시작 시 시스템 버전 번호는 쿼리된 각 레코드 행의 버전 번호와 비교하는 데 사용되는 트랜잭션 버전 번호로 사용됩니다.

REPEATABLE READ 격리 수준에서 MVCC의 특정 작업

SELECT

InnoDB는 버전이 현재 트랜잭션 버전보다 이전인 데이터 행만 검색합니다(행의 시스템 버전 번호

줄의 삭제된 버전이 정의되지 않았거나 현재 버전 번호보다 큽니다. 이렇게 하면 트랜잭션이 읽은 행이 트랜잭션이 시작되기 전에 삭제되지 않습니다.

위의 두 조건을 충족하는 레코드만 쿼리 결과를 반환할 수 있습니다.

INSERT

InnoDB는 현재 시스템 버전 번호를 새로 삽입된 각 행의 행 버전 번호로 저장합니다.

UPDATE

InnoDB는 새 레코드 행을 삽입하고 현재 시스템 버전 번호를 행 버전 번호로 저장하며 현재 시스템 버전 번호를 행 삭제 식별자로 원래 행에 저장합니다.

DELETE

InnoDB는 현재 시스템 버전 번호를 삭제된 각 행의 삭제 식별자로 저장합니다.

이 기사는 여기에서 끝났습니다. 더 많은 흥미로운 콘텐츠를 보려면 PHP 중국어 웹사이트의 MySQL 튜토리얼 비디오 칼럼을 주목하세요!

위 내용은 MySQL의 MVCC 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿