MySQL의 트랜잭션 격리 수준 실험

첫째, 실험 데이터 :

테이블 문 건축 :

표`isolation` CREATE (
`id`의 INT (11) NOT NULL,
`name`의 VARCHAR (255) CHARACTER SET의 utf8mb4 부씩의 utf8mb4_croatian_ci시 기본 NULL,
PRIMARY KEY를 (`id`)
) ENGINE = 이노 DEFAULT CHARSET = utf8mb4

 

격리 테이블, 두 개의 필드하는 아이디, 이름이 :라는 이름의 테이블을 만듭니다

원시 데이터 :

ISOLATION 값을 삽입 (1 'NAME1'), (2, "NAME2"), (3 'NAME3');

세 개의 레코드를 삽입합니다.

둘째, 준비 :

각각이 열려있는 MySQL의 클라이언트 A, B

현재 클라이언트 격리 수준보기

@@ tx_isolation SELECT

 MySQL의 InnoDB의 기본 격리 수준은 반복 읽기입니다.

 

설정 B 클라이언트가 자동으로 제출하지 마십시오 :

보기 설정을 자동 커밋 :

'자동 커밋'와 같은 세션 변수를 보여;

MySQL의 InnoDB는 기본 자동 커밋합니다.

설정이 자동으로 제출되지 않습니다 :

세션 설정 자동 커밋 = 0;

클라이언트 설정이 자동으로 성공하는 것을 제출되지 않습니다. 

첫째, 실험 더러운의 시작은 --------------------------------------- 읽고

분리 레벨의 세트가 커밋되지 않은 읽기 :

커밋되지 않은 읽기 세션 트랜잭션 격리 수준을 설정;

클라이언트 B는 일을 시작합니다

우리는 롤백 후 더러운 읽기의 결과로, 학교에 제출에는 업데이트 데이터를 찾을 수 없습니다.

 

검색 삽입 데이터 롤백 후 더러운 읽기의 결과로, 학교에 제출되지 않습니다.

 

그것은 삭제 된 데이터가 롤백 후 더러운 읽기의 결과로, 학교에 제출하지 것을 발견했다.

脏读实验结束---------------------------------------

结论,脏读会读没有提交的update insert delete。

 

读已提交实验开始---------------------------------------

设置A的隔离级别为读已提交:

set session transaction isolation level read committed;

update的时候------>>>发现解决了脏读,但是在一个事物里面,两次查询的结果不一致,即解决不了重复读的问题

insert的时候------>>>发现解决了脏读,但是在一个事物里面,两次查询的结果不一致,即解决不了重复读的问题

delete的时候------>>>发现解决了脏读,但是在一个事物里面,两次查询的结果不一致,即解决不了重复读的问题

 读已提交实验结束---------------------------------------

结论:解决了脏读,但是一个事物里面,同一个查询结果不一致,不能解决重复读的问题。

 

可重复读实验开始---------------------------------------

数据重新清理一下:

update的时候------>>>在一个事物里面,两次查询直间,读不到另外事物提交的内容,只有提交当前事物,新启事物查询的时候才能查到更新的,即解决不了重复读的问题

 

delete的时候------>>>在一个事物里面,两次查询直间,读不到另外事物提交的内容,只有提交当前事物,新启事物查询的时候才能查到更新的,即解决不了重复读的问题

 

 insert的时候------>>>在一个事物里面,两次查询直间,读不到另外事物提交的内容,只有提交当前事物,新启事物查询的时候才能查到更新的,即解决不了重复读的问题

可重复读实验结束---------------------------------------

结论:解决了脏读,可重复读,好像mysql 5.7.26在可重复读隔离级别解决了 幻想读的现象(猜测,还没太明白)。

 

串行化读实验开始---------------------------------------

串行化读实验结束--------------------------------------

结论:串行化后,当一个事物没有提交,另外的事物不能修改对数据进行(update,insert,delete操作)。

추천

출처www.cnblogs.com/likunxuhui/p/10985588.html