데이터 베이스 MySQL 튜토리얼 반복 불가능 읽기와 팬텀 읽기의 차이점은 무엇입니까?

반복 불가능 읽기와 팬텀 읽기의 차이점은 무엇입니까?

Apr 21, 2021 pm 05:40 PM
환상의 독서 데이터 베이스

차이: 반복 불가능한 읽기의 초점은 수정입니다. 동일한 조건에서 처음과 두 번째로 읽는 값이 다릅니다. 팬텀 읽기의 초점은 동일한 조건에서 추가 또는 삭제이며, 첫 번째와 두 번째로 읽는 레코드 수가 다릅니다. 제어 관점에서 볼 때 반복 불가능 읽기는 조건을 충족하는 레코드만 잠그면 되는 반면, 팬텀 읽기는 조건을 충족하는 레코드 및 유사한 레코드를 잠그면 됩니다.

반복 불가능 읽기와 팬텀 읽기의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

세련된 설명:

반복 불가능한 읽기의 핵심은 수정입니다:

같은 조건, 읽은 데이터를 다시 읽어보면 값이 다르다는 것을 알 수 있습니다.

팬텀리딩의 핵심은 추가냐 삭제냐에 따라 다름

동일한 조건에서 1차와 2차에 읽어내는 레코드의 개수가 다르다

물론 전체적인 결과로 보면 그럴 것 같다. 둘 다 두 번 읽은 결과가 일치하지 않는 결과를 보여줍니다.

하지만 제어 측면에서 보면 둘의 차이가 상대적으로 큽니다

  • 전자의 경우 해당 기록만 잠그면 됩니다. 조건 충족

  • 후자의 경우 조건을 만족하는 기록과 유사 기록을 잠가야 합니다

상세 설명:

1) "반복 불가능 읽기"는 다음을 의미합니다. 트랜잭션 내에서 동일한 데이터가 여러 번 발생합니다. 이 트랜잭션이 끝나기 전에 다른 트랜잭션도 동일한 데이터에 액세스합니다. 그러면 첫 번째 트랜잭션에서 두 번 읽은 데이터 사이에 두 번째 트랜잭션의 수정으로 인해 첫 번째 트랜잭션에서 두 번 읽은 데이터가 다를 수 있습니다. 이와 같이 트랜잭션 내에서 두 번 읽은 데이터가 다르기 때문에 반복 불가능 읽기라고 합니다. 예를 들어, 편집자는 동일한 문서를 두 번 읽지만, 읽는 사이에 작성자는 문서를 다시 작성합니다. 편집자가 문서를 두 번째로 읽으면 문서가 변경된 것입니다. 원시 읽기는 반복할 수 없습니다. 작성자가 문서를 작성한 후에만 편집자가 문서를 읽을 수 있으면 이 문제를 피할 수 있습니다. 이 상황을 방지하려면 일반적으로 격리 수준 설정을 사용하여 격리 수준을 설정하여 트랜잭션 A가 두 번 읽히도록 할 수 있습니다. 테이블 T의 데이터를 가져오는 동안 트랜잭션 B가 테이블 T의 데이터를 변경하려고 시도하면(자세한 내용은 트랜잭션 A가 데이터를 읽을 때임) 트랜잭션 A가 커밋될 때까지 차단됩니다! 이는 트랜잭션 A가 두 번 읽은 데이터의 일관성을 보장합니다.

2) 환각 읽기란 트랜잭션이 독립적으로 실행되지 않을 때 발생하는 현상을 말합니다. 예를 들어 첫 번째 트랜잭션은 테이블의 데이터를 수정하는데, 이 수정에는 테이블의 모든 데이터 행이 포함됩니다. 동시에 두 번째 트랜잭션도 이 테이블의 데이터를 수정합니다. 이 수정으로 인해 테이블에 새 데이터 행이 삽입됩니다. 그러면 나중에 첫 번째 트랜잭션을 수행한 사용자는 마치 환각이 발생한 것처럼 테이블에 아직 수정되지 않은 데이터 행이 있다는 것을 알게 될 것입니다. 예를 들어, 편집자는 작성자가 제출한 문서를 변경했지만 프로덕션에서 변경 내용을 문서의 마스터 사본에 병합할 때 작성자가 편집되지 않은 새 자료를 문서에 추가했음이 발견되었습니다. 편집자와 제작 부서가 원본 문서 작업을 마칠 때까지 누구도 문서에 새 자료를 추가할 수 없다면 이 문제를 피할 수 있습니다.

관련 무료 학습 권장사항:

mysql 비디오 튜토리얼

위 내용은 반복 불가능 읽기와 팬텀 읽기의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Go 언어는 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 어떻게 구현합니까? Go 언어는 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 어떻게 구현합니까? Mar 27, 2024 pm 09:39 PM

Go 언어는 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 어떻게 구현합니까?

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate는 어떻게 다형성 매핑을 구현합니까?

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다.

MySQL 데이터베이스 관리 시스템의 기본 원리 분석 MySQL 데이터베이스 관리 시스템의 기본 원리 분석 Mar 25, 2024 pm 12:42 PM

MySQL 데이터베이스 관리 시스템의 기본 원리 분석

HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 Apr 09, 2024 pm 12:36 PM

HTML이 데이터베이스를 읽는 방법에 대한 심층 분석

PHP를 사용하여 데이터베이스에서 중국어 왜곡 문자를 처리하기 위한 팁과 사례 PHP를 사용하여 데이터베이스에서 중국어 왜곡 문자를 처리하기 위한 팁과 사례 Mar 27, 2024 pm 05:21 PM

PHP를 사용하여 데이터베이스에서 중국어 왜곡 문자를 처리하기 위한 팁과 사례

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하는 방법

See all articles