데이터베이스 격리 수준에는 1. 커밋되지 않은 읽기, 2. 커밋된 읽기, 3. 반복 가능한 읽기, 직렬화가 포함됩니다. 격리 수준이 낮을수록 일반적으로 더 높은 동시성을 지원하고 시스템 오버헤드가 더 낮습니다.
이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터, mysql8.
1. 트랜잭션의 개념
트랜잭션의 일련의 작업은 모두 성공하거나 하나도 성공하지 않아야 합니다.
트랜잭션을 종료하는 방법에는 두 가지가 있습니다. 트랜잭션의 모든 단계가 성공적으로 실행되면 트랜잭션이 커밋됩니다. 단계 중 하나가 실패하면 롤백 작업이 발생하여 트랜잭션에서 수행한 작업이 실행 취소됩니다.
2. 트랜잭션 특성 ACID
트랜잭션에는 원자성(Atomicity), 일관성(Consistency), 격리(Isolation), 내구성(Durability)의 네 가지 특성이 있으며 이를 ACID 특성이라고 합니다.
3. 다중 트랜잭션 동시 실행 문제
(1) 더티 읽기: 트랜잭션 1이 레코드를 업데이트했지만 커밋하지 않았습니다. 트랜잭션 2가 업데이트된 행을 읽은 다음 트랜잭션 T1이 롤백되었으며 이제 T2의 읽기가 유효하지 않습니다.
(2) 반복 불가능한 읽기: 트랜잭션 1이 레코드를 읽으면 트랜잭션 2가 레코드를 업데이트하고 커밋합니다. 트랜잭션 1이 다시 읽으면 트랜잭션 2의 수정된 레코드를 볼 수 있습니다.
(3) Phantom 읽기: 트랜잭션 1 레코드를 읽으면 트랜잭션 2가 레코드를 추가하고 제출합니다. 트랜잭션 1을 다시 읽으면 트랜잭션 2의 새로 추가된 레코드를 볼 수 있습니다.
4. 트랜잭션의 4가지 격리 수준
SQL 표준은 4가지 유형의 격리 수준을 정의합니다. , 포함하여 일부 특정 규칙은 트랜잭션 내부 및 외부 변경 사항이 표시되고 보이지 않는 것을 제한하기 위해 정의됩니다. 격리 수준이 낮을수록 일반적으로 더 높은 동시성을 지원하고 시스템 오버헤드가 더 낮습니다.
관련 추천: mysql 튜토리얼
(동영상 튜토리얼 추천: mysql 동영상 튜토리얼)
위 내용은 데이터베이스 격리 수준은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!