집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터베이스 트랜잭션 격리 수준에 대한 자세한 소개
본 글에서는 MySQL 데이터베이스 트랜잭션 격리 수준에 대한 자세한 설명을 주로 소개합니다. 필요한 친구는
데이터베이스 트랜잭션 격리 수준을 참조하세요. 🎜>
데이터베이스 트랜잭션에는 낮은 수준에서 높은 수준까지 4가지 격리 수준이 있습니다.事务级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
Read uncommitted | √ | √ | √ |
Read committed | × | √ | √ |
Repeatable read | × | × | √ |
Serializable | × | × | × |
더티 읽기, 팬텀 읽기, 반복 불가능 읽기
더티 읽기:
더티 읽기는 트랜잭션이 진행 중 데이터에 액세스하여 수정했지만 아직 수정 사항이 데이터베이스에 제출되지 않았습니다. 이때 다른 트랜잭션도 해당 데이터에 액세스한 후 해당 데이터를 사용합니다.반복 불가능한 읽기:
는 트랜잭션 내에서 동일한 데이터를 여러 번 읽는 것을 의미합니다. 이 트랜잭션이 끝나기 전에 다른 트랜잭션도 동일한 데이터에 액세스합니다. 그러면 첫 번째 트랜잭션에서 두 번 읽은 데이터 사이에 두 번째 트랜잭션의 수정으로 인해 첫 번째 트랜잭션에서 두 번 읽은 데이터가 다를 수 있습니다. 이와 같이 트랜잭션 내에서 두 번 읽은 데이터가 다르기 때문에 반복 불가능 읽기라고 합니다. (즉, 동일한 데이터 내용을 읽을 수 없음)환상 읽기:
은 첫 번째와 같이 트랜잭션이 독립적으로 실행되지 않을 때 발생하는 현상을 말합니다. transaction 테이블의 데이터가 수정되었으며, 이 수정에는 테이블의 모든 데이터 행이 포함됩니다. 동시에 두 번째 트랜잭션도 이 테이블의 데이터를 수정합니다. 이 수정으로 인해 테이블에 새 데이터 행이 삽입됩니다. 그러면 나중에 첫 번째 트랜잭션을 수행한 사용자는 마치 환각이 발생한 것처럼 테이블에 아직 수정되지 않은 데이터 행이 있다는 것을 알게 될 것입니다. 예: 테이블:CREATE TABLE `cc_wsyw126_user_test_isolation_copy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `password` varchar(64) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `ix_age` (`age`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;시뮬레이션된 데이터:
INSERT INTO `cc_wsyw126_user_test_isolation_copy` (`password`, `age`) VALUES ('1', 1), ('2', 2), ('3', 3), ('4', 4);첫 번째 트랜잭션 A:
start transaction insert into cc_wsyw126_user_test_isolation_copy (password, age) values ('5',5) commit두 번째 트랜잭션 B:
start transaction update cc_wsyw126_user_test_isolation_copy set age = 2 where password >='2' select * from cc_wsyw126_user_test_isolation_copy where password >= '2'; commit
재현 단계:
트랜잭션 A의 삽입 문이 트랜잭션 선택 이전과 트랜잭션 B 업데이트 이후인 한. MySQL InnoDB 스토리지 엔진은 다중 버전 동시성 제어 프로토콜 -MVCC(Multi-Version Concurrency Control) 및 갭 잠금(next -키 잠금) 전략을 구현합니다. RR(반복 읽기) 격리 수준에서는 팬텀 읽기가 없습니다. 팬텀 읽기를 테스트하려면 MyISAM에서 시도해 보세요.
클러스터형인덱스 (기본 키 인덱스)에서 고유성 제약 조건 이 있는 경우 InnoDB는 기본 다음 키 잠금을 레코드 잠금으로 다운그레이드합니다.
위 내용은 MySQL 데이터베이스 트랜잭션 격리 수준에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!