트랜잭션의 네 가지 격리 수준은 다음과 같습니다. 1. 커밋되지 않은 콘텐츠 읽기(커밋되지 않은 읽기) 2. 제출된 콘텐츠 읽기(커밋된 읽기) 3. 반복 가능 읽기(반복 가능)
4가지 트랜잭션 격리 수준:
(권장 학습: mysql tutorial)
1. 커밋되지 않은 읽기 - 커밋되지 않은 콘텐츠 읽기
A 트랜잭션은 커밋되지 않은 내용을 볼 수 있습니다. 콘텐츠 제출된 콘텐츠
종종 더티 읽기 문제가 발생합니다(더티 읽기: 다른 트랜잭션에 의해 제출(실행)되지 않은 내용을 읽는 것)
동일한 데이터 테이블에 대해 두 개의 트랜잭션 A와 B를 엽니다(A와 B 트랜잭션이 교차) 트랜잭션 시작
A 트랜잭션은 데이터 테이블의 콘텐츠만 쿼리하고, B 트랜잭션은 추가, 삭제 및 수정 작업을 수행하지만 커밋(제출)은 하지 않습니다.
A 트랜잭션은 여전히 테이블의 데이터 변경 사항을 쿼리할 수 있습니다(커밋되지 않은 콘텐츠 쿼리 - 더티 읽기).
2. Read Committed - 제출된 콘텐츠를 읽습니다
A 트랜잭션은 제출된 콘텐츠만 볼 수 있습니다
종종 반복 불가능 읽기 문제가 발생합니다(비반복 읽기: 동일한 트랜잭션이 동일한 트랜잭션 select 문은 다른 결과를 얻음)
동일한 데이터 테이블에서 두 개의 트랜잭션 A와 B를 시작합니다(A와 B 트랜잭션이 교차) 트랜잭션 시작
A 트랜잭션은 데이터 테이블의 내용만 쿼리하고 B 트랜잭션은 작업을 추가, 삭제 또는 수정하지 않습니다. 커밋(제출)
A 트랜잭션은 테이블의 데이터 변경 사항을 쿼리할 수 없습니다
B 트랜잭션 제출
A는 데이터 변경 사항을 발견했습니다(A가 두 번 쿼리하여 다른 결과 생성 - 반복 불가능 읽기).
3. 반복 읽기 - 반복 가능
동일한 트랜잭션의 여러 인스턴스가 동시에 데이터를 읽을 때 동일한 결과를 얻습니다.
MySQL의 기본 트랜잭션 격리 수준
으로 인해 종종 팬텀 읽기 문제가 발생합니다(팬텀 읽기). : 여러 번 읽으면 다른 결과가 생성됩니다(팬텀 행))
동일한 데이터 테이블에 대해 두 개의 트랜잭션 A와 B를 엽니다(A와 B 트랜잭션이 교차) 트랜잭션 시작
A 트랜잭션은 데이터 테이블의 내용만 쿼리합니다. , B 트랜잭션 추가, 삭제 및 수정 작업을 수행하지만 커밋(제출)하지 않습니다.
A 트랜잭션은 테이블에 있는 데이터의 변경된 내용을 쿼리할 수 없습니다.
B 트랜잭션 제출
A 트랜잭션은 테이블에 있는 데이터의 변경된 내용을 쿼리할 수 없습니다. the table
A submit
A 테이블의 데이터 변경 사항을 쿼리할 수 있습니다
4. 직렬화 가능 - 직렬화 가능
가장 높은 격리 수준
트랜잭션에 공유 잠금을 추가하고 거기에 팬텀 읽기를 해결하기 위해 동시에 하나의 트랜잭션 작업만 가능합니다. 문제
는 많은 시간 초과 및 잠금 경합 문제로 이어질 것입니다.
트랜잭션이 열릴 때
이 작업은 다음과 같은 경우 추가하거나 삭제할 수 없습니다. B 거래가 열렸습니다
위 내용은 트랜잭션의 4가지 격리 수준은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!