>  기사  >  데이터 베이스  >  트랜잭션의 4가지 격리 수준은 무엇입니까?

트랜잭션의 4가지 격리 수준은 무엇입니까?

王林
王林원래의
2020-07-01 14:52:3714980검색

트랜잭션의 네 가지 격리 수준은 다음과 같습니다. 1. 커밋되지 않은 콘텐츠 읽기(커밋되지 않은 읽기) 2. 제출된 콘텐츠 읽기(커밋된 읽기) 3. 반복 가능 읽기(반복 가능)

트랜잭션의 4가지 격리 수준은 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.