快照隔离(Snapshot Isolation)简单介绍和例子

快照隔离(Snapshot Isolation)特性

1、写入程序不会阻碍读取程序

2、Snapshot isolation must be enabled for DB

 

3、Snapshot isolation must be enabled for connection Set transaction isolation level snapshot

4、UPDATE transactions keep old versions of data in a linked list

5、新的隔离级别提供了以下优点:

  •  提高了只读应用程序的数据可用性
  •  允许在OLTP环境中执行非阻止读取操作
  • 可对写入事务进行自动的强制冲突检测

例子

首先创建数据库

 

然后建立连接,在测试的时候一个连接其实就是相当于新建一个查询。

连接一:

 

可以看到我们在连接一种修改了数据库中的内容,查询结果为:

tid         name

1        version1

2        version3

连接二:

 

查询结果为:

 

tid         name

1        version1

2        version2

总结

从查询结果中我们可以看到如果使用了快照隔离(snapshot isolation)技术以后每一个被修改的数据项都保留了一个备份。我们如果选择在快照隔离级别下查找,那么我们能够找到旧的版本。

 

 

PS:

如果我们这里直接使用查询语句

连接三:

 

则会提示连接超时,这是因为我们在连接一种是用了事务的概念,在没有提交事务一的情况下其他连接无法再普通模式下访问被事务操纵的数据。

我们在连接一种加入

 

命令,这样事务提交,则连接三可以访问,查询结果为连接一修改后的结果:

 

tid         name

1        version1

2        version3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值