더티 읽기, 팬텀 읽기, 반복 불가능 읽기의 차이점: 1. 더티 읽기는 트랜잭션이 데이터에 액세스하고 데이터가 수정되는 경우를 의미합니다. 2. 반복 불가능 읽기는 트랜잭션 내에서 동일한 읽기가 읽히는 것을 의미합니다. 3. 팬텀리딩(Phantom Reading)은 트랜잭션이 독립적으로 실행되지 않을 때 발생하는 현상을 말합니다.
【관련 학습 권장사항: mysql 튜토리얼】
더티 리딩, 팬텀 리딩, 비반복 리딩의 차이점:
1. 더티 리딩: 더티. 독서 트랜잭션이 데이터에 액세스하고 데이터를 수정했지만 이 수정 사항이 아직 데이터베이스에 커밋되지 않은 경우를 의미합니다. 이때 다른 트랜잭션도 해당 데이터에 액세스한 후 해당 데이터를 사용합니다.
2. 반복 불가능 읽기: 트랜잭션 내에서 동일한 데이터를 여러 번 읽는 것을 의미합니다. 이 트랜잭션이 끝나기 전에 다른 트랜잭션도 동일한 데이터에 액세스합니다. 그러면 첫 번째 트랜잭션에서 읽은 두 개의 데이터 사이에 두 번째 트랜잭션의 수정으로 인해 첫 번째 트랜잭션에서 두 번 읽은 데이터가 다를 수 있습니다. 이와 같이 트랜잭션 내에서 두 번 읽은 데이터가 다르기 때문에 반복 불가능 읽기라고 합니다. 예를 들어, 편집자는 동일한 문서를 두 번 읽지만, 읽는 사이에 작성자는 문서를 다시 작성합니다. 편집자가 문서를 두 번째로 읽으면 문서가 변경된 것입니다. 원시 읽기는 반복할 수 없습니다. 작성자가 집필을 마친 후에만 편집자가 문서를 읽을 수 있으면 이 문제를 피할 수 있습니다.
3. 팬텀 읽기: 트랜잭션이 독립적으로 실행되지 않을 때 발생하는 현상을 말합니다. 예를 들어 첫 번째 트랜잭션이 테이블의 데이터를 수정하는데, 이 수정에는 테이블의 모든 데이터 행이 포함됩니다. 동시에 두 번째 트랜잭션도 이 테이블의 데이터를 수정합니다. 이 수정으로 인해 테이블에 새 데이터 행이 삽입됩니다. 그러면 나중에 첫 번째 트랜잭션을 수행한 사용자는 마치 환각이 발생한 것처럼 테이블에 아직 수정되지 않은 데이터 행이 있다는 것을 알게 될 것입니다. 예를 들어, 편집자는 작성자가 제출한 문서를 변경했지만 프로덕션에서 변경 내용을 문서의 마스터 사본에 병합할 때 작성자가 편집되지 않은 새 자료를 문서에 추가했음이 발견되었습니다. 편집자와 제작 부서가 원본 문서 작업을 마칠 때까지 누구도 문서에 새 자료를 추가할 수 없다면 이 문제를 피할 수 있습니다.
보충: 메타데이터 기반 Spring 선언적 트랜잭션:
Isolation 속성은 총 5개의 트랜잭션 설정을 지원하며 세부 사항은 다음과 같습니다.
DEFAULT는 데이터베이스에서 설정한 격리 수준(기본값)을 사용합니다. DBA 기본값 격리 수준을 결정합니다.
READ_UNCOMMITTED는 더티 읽기, 반복 불가능 읽기 및 팬텀 읽기를 발생시킵니다(가장 낮은 격리 수준, 높은 동시성 성능)
READ_COMMITTED는 반복 불가능 읽기 및 팬텀 읽기를 발생시킵니다. (읽고 있는 파일 잠금) 행)
REPEATABLE_READ는 가상 읽기를 발생시킵니다(읽은 모든 행 잠금)
SERIALIZABLE은 모든 상황이 발생하지 않도록 보장합니다(테이블 잠금)
에 중점을 둡니다. 반복 불가능 읽기는 수정입니다.
동일한 트랜잭션에서 두 번 읽은 데이터는 다릅니다.
팬텀 리딩의 핵심은 추가 또는 삭제
같은 조건, 첫 번째와 두 번째로 읽어오는 레코드 개수가 다릅니다
더티 리딩:
두 번째 트랜잭션 읽기를 강조하지 않았습니다. 충분히 새로운 것이 도착하지 않았습니다.
위 내용은 더티 읽기, 팬텀 읽기, 반복 불가능 읽기의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!