my sql 격 리 단계 작업 과정 상세 설명(cmd)
1.두 개의 MySql 명령 프롬프트 줄 을 열 고 모두 같은 데이터베이스 에 들 어가 고 현재 표 의 내용 이 같은 데이터 인지 확인 합 니 다.다음 과 같 습 니 다.
2、A,B 양 끝 에서 select@@tx 실행isolation;현재 기본 격 리 단 계 를 검사 하면 모두
Repeatable Read C 는 반복 해서 읽 을 수 있 습 니 다.-(현재 사무 에서 처음 읽 은 데 이 터 를 반복 해서 읽 는 것 을 반복 해서 읽 을 수 있 는 것 이 라 고 합 니 다.)
3.A 단의 격 리 단 계 를 readuncommitted C 로 수정 하여 제출 하지 않 았 습 니 다.다른 사람 이 제출 하지 않 은 데 이 터 를 읽 을 수 있다 는 뜻 이다.
set transactionisolation level read uncommitted;
녹색 MySql 5.5 에서 실행 하 십시오:
Set sessiontransaction isolation level read uncommitted;
그리고 변경 사항 이 있 는 지 확인 합 니 다:4.A,B 양 끝 에서 모두 트 랜 잭 션 을 시작 합 니 다.
starttransaction;
5.B 단 에서 다음 과 같은 데 이 터 를 수정 합 니 다.
update stud setname='Jhon' where id=1;
그 다음 에 A 단 에서 조 회 를 실행 합 니 다:select*from stud;6.이때 B 단 에서 스크롤 백 작업 을 다시 수행 합 니 다.
Rollback;
다시 A 단 에서 조회 한 결과 데이터 가 다시 이전 데이터 로 돌아 간 것 으로 나 타 났 다.이것 이 바로 더러 운 읽 기 이다.
7.B 단 에 기 록 된 새로운 데이터 에 대해 A 단 을 제출 하지 않 아 도 마찬가지 로 조회 할 수 있 습 니 다.이것 은 환 독 이 라 고 합 니 다.
제출 한 작업 과정 읽 기:-read COMMITTED
1.A,B 양 끝 이 일치 하 는 지 확인:
2.A 단(왼쪽)의 격 리 단 계 를 readcommitted 로 수정 합 니 다.
set transactionisolation level read committed;
A 단 에서 트 랜 잭 션 시작:starttransaction;
B 단 에서 트 랜 잭 션 시작
3.A 단 에서 조회:
Select * fromstud;
B 단 에서 한 줄 의 기록 을 수정 하고 제출 합 니 다.
Update stud setname='itcast' where id=1;
다시 A 단 으로 돌아 가 조회 한 결과 같은 사무 에서 두 번 조회 한 결과 가 다르다 는 것 을 알 수 있 습 니 다.반복 읽 기 예제 반복 읽 기
1.A 단의 격 리 단계 가 Repeatablered 단계 인지 확인 합 니 다.
Select@@tx_isolation;
2.먼저 A 단 에서 열 린 트 랜 잭 션 에서 조회 합 니 다.
그리고 B 단 에서 데이터베이스 내용 을 수정 합 니 다.
마지막 으로 A 단의 같은 사무 에서 조회 한 결과 결과 일치 하 는 것 을 발견 했다.
Serializable 은 최고급 격 리 단계 입 니 다.
1.A 단 에 격 리 단 계 를 Serializable 로 설정 합 니 다.
set transactionisolation level serializable;
A 단 에서 트 랜 잭 션 을 시작 하고 stud 표를 조회 합 니 다.B 단 에서 사 무 를 시작 하고 기록 을 기록 합 니 다.이때 B 의 코드 가 실행 되 지 않 은 것 을 발견 했다.왜냐하면 그것 은 A 가 제출 한 후에 야 실행 되 기 때문이다.
스 레 드 동기 화 와 유사 한 개념
이 네 가지 격 리 단 계 는 서로 다른 잠 금 형식 으로 이 루어 집 니 다.같은 데 이 터 를 읽 으 면 문제 가 발생 하기 쉽 습 니 다.예 를 들 면:
더러 운 읽 기(Drity Read):어떤 사무 가 데 이 터 를 업 데 이 트 했 습 니 다.다른 사 무 는 이때 같은 데 이 터 를 읽 었 습 니 다.어떤 이유 로 앞의 RollBack(스크롤 백)이 조작 되면 다음 사무소 에서 읽 은 데 이 터 는 정확 하지 않 습 니 다.
중복 읽 을 수 없습니다(Non-repeatable read):한 업무 의 두 번 의 조회 에서 데이터 가 일치 하지 않 습 니 다.이것 은 두 번 의 조회 과정 에서 하나의 사무 가 업 데 이 트 된 기 존 데 이 터 를 삽입 한 것 일 수 있 습 니 다.
환 독(Phantom Read):한 업무 의 두 번 의 조회 에서 데이터 펜 수가 일치 하지 않 습 니 다.예 를 들 어 한 업무 가 몇 열(Row)데 이 터 를 조 회 했 고 다른 업 무 는 이때 새로운 몇 열 데 이 터 를 삽 입 했 습 니 다.이전의 업 무 는 다음 조회 에서 몇 열 데이터 가 이전에 없 었 던 것 임 을 발견 할 수 있 습 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.