데이터베이스 업무의 네 가지 격리 단계
Read Uncommitted( )
Read Committed( )
Repeatable Read( )
Serializable( )
이 네 가지 격리는 순서대로 높아지고 격리 단계가 낮을수록 시스템 비용이 적으며 병발 지원성이 높다.
명령
show variables like '%isolation%';
을 사용하여 현재 데이터베이스에서 사용되는 격리 단계를 볼 수 있습니다.네 가지 격리 단계를 소개하기 전에 사무를 사용할 때 발생하는 세 가지 특수(대부분 오류가 발생할 수 있음) 읽기 유형을 설명한다.
더러움은 한 사무 a가 데이터를 수정하거나 추가한 것을 말한다. a사무가 제출되기 전에 다른 사무 b가 이 데이터를 읽고 조작했다.a 스크롤을 하면 더럽혀서 b 작업이 존재하지 않는 데이터를 읽을 수 있습니다.
한 번의 업무에서 두 번의 같은 조건의 조회가 일치하지 않는다. 예를 들어 a사무집행select count(*) from user where name='alex'
이때 사무b가 데이터name=alex를 삽입하여 제출하면 사무a가 두 번째 조회를 할 때 계수가 많아진다
판독은 중복할 수 없는 것과 반대로 사무 a와 사무 b는 완전히 격리되고 사무 a 집행'select id from user
에서 얻은 id는 1과 2.이 때 b 사무는user표에 데이터 id=3을 추가하여 제출한 다음에 사무 a는 id가 3인 데이터를 추가하려고 합니다. 만약 id가 유일하다면 a는 삽입할 수 없고dumplicate entry 3 for key id를 알립니다. 사무 a가 사무 b의 삽입 행위를 막기 때문입니다.혼동하지 않도록 중복독과 환독은 안 된다
Read Uncommited
Repeatable
(gap lock)
를 통해 실현된 것으로 간극 자물쇠의 원리는 이 글을 참조할 수 있다.http://www.jianshu.com/p/bf86... Serializable
마지막으로 세 가지 읽기 유형에 대한 네 가지 격리 단계의 대조표를 제시한다.
격리 단계
더럽게 읽다
중복 읽기 불가
환상적으로 읽다
Read Uncommited
이 가능하다, ~할 수 있다,...
이 가능하다, ~할 수 있다,...
이 가능하다, ~할 수 있다,...
Read Commited
불가능
이 가능하다, ~할 수 있다,...
이 가능하다, ~할 수 있다,...
Repeatable Read
불가능
불가능
이 가능하다, ~할 수 있다,...
Serializable
불가능
불가능
불가능
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.