프로그래머 면접 보전의 Mysql 데이터베이스 Innodb 엔진의 4 가지 격리 수준
주제: Mysql Innodb 엔진의 4 가지 격리 수준
난이도 설명: 삼성
면접 빈도: 별 5 개성
1.Read uncommitted (읽기가 제출되지 않음):, 가장 낮은 격리 수준에서 한 트랜잭션이 다른 트랜잭션이 제출되지 않은 데이터를 읽을 수 있습니다. 더티 읽기라고도 합니다.
2 를 사용하는 사람은 거의 없습니다 그러나 Mysql 기본 격리 수준
3.Repeatable read (반복 가능 읽기) 는 아닙니다. 커밋된 격리 수준 읽기에서 같은 변수를 두 번 읽고 다른 트랜잭션이 해당 값을 수정하면 읽는 것이 다릅니다. 이 격리 수준에서, 이름에서 알 수 있듯이, 하나의 트랜잭션이 읽기 시작했다. 여러 번 읽은 값은 같은
4.Serializable 이 이 격리 수준에 직렬화되어 모든 트랜잭션이 직렬로 처리되며 격리 수준이 가장 높고 효율성이 가장 낮습니다.
면접관에게 Innodb 엔진의 기본 격리 수준은 어느
a: 반복 가능한 읽기
면접관이 물었다. 반복 가능한 구현 원칙
트랜잭션이 시작되면 현재 버전 번호가 캐시되고, 나중에 읽을 때 이 버전 번호의 데이터만 읽혀지므로 다른 트랜잭션이 수정된 데이터의 버전 번호를 제출하여면접관이
를 읽지 않습니다. 트랜잭션의 격리 수준을 설정하는 방법:
a: Mysql 그러나 이렇게 하면 Mysql 재시작 실패, my.cnf 를 수정하여
< P > 면접관을 영구적으로 설정합니다. 다시 읽을 수 있는 질문
A: 매직 읽기가 나타납니다. 매직 읽기는 트랜잭션이 값을 읽고 후속 작업을 정확하게 계속할 수 없다는 의미입니다. 예를 들어 값을 읽고, 없으면 삽입하지만, 삽입 시 다른 트랜잭션이 삽입되면 삽입이 실패합니다. 해결 방법: SQL 문은 잠금: select xxxx for update 를 표시하고, 다른 트랜잭션은 데이터를 수정하면
를 차단합니다