read view初探

作者: 联系我们  发布:2020-01-03

innodb为兑现MVCC所使用的里边快照,PAJEROEvoque(REPEATABLE READ卡塔尔国隔绝等级下在第2回询问时创设read view,RC(READ COMMITTED卡塔尔(قطر‎隔开品级下会在每便查询时创造read view
以下测验在OdysseyENCORE隔绝品级下,数据库版本为5.7.20
1.

session A session B
start transaction;  
  start transaction;

select * from tab1;
Empty set

 
  insert into tab1 values (1,"1");

select * from tab1;
Empty set

 
  commit;

select * from tab1;
Empty set

 

commit;

 

select * from tab1;
+------+------+
| col1 | col2 |
+------+------+
| 1 | 1 |
+------+------+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

全球彩票历史版本, 

 

 

 

敲定:在已经查询后,别的专门的工作做的改变,在本领务不可以预知

2.

session A session B
truncate table tab1;  

start transaction;

 
  start transaction;
  insert into tab1 values (1,"1");
  commit;

select * from tab1;
+------+------+
| col1 | col2 |
+------+------+
| 1 | 1 |
+------+------+

 

 

 

 

 

 

 

 

 

 

 

 

结论:固然事务A比事务B先初始,可是首先次询问在B事务提交后,所以能够查询到结果

3.

session A session B
truncate table tab1;  

start transaction;

 
  start transaction;

select * from tab1;
Empty set

 
  insert into tab1 values (1,"1");
  insert into tab1 values (2,"2");
  insert into tab1 values (3,"3");
  commit;

select * from tab1;
Empty set

 

update tab1 set col2 ="22" where col1>=2;

2 rows affected

 

select * from tab1;
+------+------+
| col1 | col2 |
+------+------+
| 2 | 22 |
| 3 | 22 |
+------+------+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

结论:即使事务A看不到事务B做的改造,不过校订也会潜移暗化事务B已经交由的数目,且修正爆发后,被改善的笔录(即便是别的作业提交的State of Qatar,也会化为对该事务可知

另外:

1.select ... for update和select ... lock in share mode(8.0是select ... for share)会再次生成read view

2.select ... with consistent snapshot不会读到在技术务初叶后交给的多少,纵然第二遍select是在其他事情提交后

 

 

参照他事他说加以侦察网站:

2. 

本文由全球彩票历史版本发布于联系我们,转载请注明出处:read view初探

关键词:

上一篇:面向程序员的数据库访问性能优化法则
下一篇:没有了