>  기사  >  데이터 베이스  >  팬텀 읽기와 반복 불가능 읽기의 차이점은 무엇입니까?

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

王林
王林원래의
2020-06-05 15:28:019801검색

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

차이:

비반복 읽기: 동일한 조건에서 다시 읽을 때 읽은 데이터의 값이 변경됩니다.

팬텀 리딩: 동일한 조건에서 첫 번째와 두 번째로 읽어내는 레코드 수가 다릅니다.

상세 분석:

1. 반복 불가능 읽기

동일한 조건에서 다시 읽을 때 읽은 데이터의 값이 변경되었습니다.

예:

트랜잭션 1에서 A는 급여를 1000으로 읽었지만 트랜잭션 1의 작업은 현재 완료되지 않았으며 나중에 또 다른 동일한 읽기 작업이 있습니다.

con1 = getConnection();
select salary from employee where employeeName ="A";

거래 2에서 재무 담당자는 A씨의 급여를 2000으로 수정하고 거래를 제출했습니다.

con2 = getConnection();    
update employee set salary = 2000 where employeeName = "A";    
con2.commit();

트랜잭션 1에서 A가 자신의 급여를 다시 읽으면 급여는 2000이 됩니다.

select salary from employee where employeeName ="A";

한 트랜잭션에서 두 번의 읽기 결과가 일치하지 않아 반복할 수 없는 읽기가 발생합니다.

2. 환상 읽기

동일한 조건에서 첫 번째와 두 번째로 읽는 레코드 수가 다릅니다.

예:

현재 급여가 1,000인 직원이 5명이 있습니다.

트랜잭션 1, 급여가 1,000인 모든 직원을 읽고, 총 10개의 레코드를 읽습니다.

con1 = getConnection();    
Select * from employee where salary =1000;

이때 또 다른 트랜잭션이 직원 테이블에 직원 레코드를 삽입했는데 급여도 1000이었습니다.

con2 = getConnection();    
Insert into employee(employeeName,salary) values("B",1000);    
con2.commit();

트랜잭션 1에서는 다시 급여가 1000인 모든 직원을 읽어 총 6개의 레코드를 읽어서 급여도 1000이 되었습니다. 환상의 읽기 .

//con1    
select * from employee where salary =1000;

추천 튜토리얼: mysql 튜토리얼

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

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