MySQL 팬텀 읽기를 해결하는 방법은 무엇입니까?
Jun 18, 2020 pm 03:39 PMMySQL 팬텀 리딩을 해결하는 방법은 무엇입니까?
1. MVCC 스냅샷은 기록 데이터를 스냅샷에 저장하여 트랜잭션이 데이터를 추가하고 삭제할 때 현재 트랜잭션이 보이지 않도록 합니다.
대부분의 데이터베이스는 다중 버전 동시성 제어를 구현하며 이는 모두 데이터 스냅샷을 저장하여 달성됩니다.
InnoDB를 예로 들면 각 줄마다 두 개의 중복된 단어 구분이 있습니다. 하나는 행의 생성된 버전이고 다른 하나는 행의 삭제된(만료된) 버전입니다. 버전 번호는 각 트랜잭션마다 자동으로 증가합니다. 트랜잭션이 데이터를 가져올 때마다 생성 버전이 현재 트랜잭션 버전보다 작은 데이터와 만료된 버전이 현재 버전보다 큰 데이터를 가져옵니다.
보통 셀렉트는 스냅샷 리딩입니다.
select * from T where number = 1;
2. "다음 키" 잠금은 현재 데이터 행과 이전 데이터 및 다음 데이터 사이의 간격을 잠궈 이 범위 내에서 읽은 데이터가 일관되도록 합니다.
다음-키 잠금은 두 부분으로 구성됩니다
레코드 잠금(행 잠금)
Gap 잠금
레코드 잠금은 인덱스에 추가되는 잠금이고, 인덱스 사이에 Gap 잠금이 추가됩니다. (생각: 열에 인덱스가 없으면 어떻게 될까요?)
select * from T where number = 1 for update; select * from T where number = 1 lock in share mode; insert update delete
추천 튜토리얼: "MySQL Tutorial"
위 내용은 MySQL 팬텀 읽기를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP를 사용하여 MySQL 테이블에 데이터를 삽입하는 방법은 무엇입니까?

데이터베이스에서 Java 열거 유형의 애플리케이션 시나리오는 무엇입니까?

MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법
