1.软文推荐

2.软文推荐

3.软文推荐

什么是快照读(Snapshot Read)?

MySQL数据库,InnoDB存储引擎,为了提高并发,使用MVCC机制,在并发事务时,通过读取数据行的历史数据版本,不加锁,来提高并发的一种不加锁一致性读(Consistent Nonlocking Read)。

画外音:本文所有讨论基于MySQL-InnoDB。

快照读的内核原理,详见:《InnoDB并发如此高,原因竟然在这?》

什么是读提交(Read Committed)?

(1)数据库领域,事务隔离级别的一种,简称RC;

(2)它解决“读脏”问题,保证读取到的数据行都是已提交事务写入的;

(3)它可能存在“读幻影行”问题,同一个事务里,连续相同的read可能读到不同的结果集;

什么是可重复读(Repeated Read)?

(1)数据库领域,事务隔离级别的一种,简称RR;

(2)它不但解决“读脏”问题,还部分解决了“读幻影行”问题,同一个事务里,连续相同的read读到相同的结果集;

在读提交(RC),可重复读(RR)两个不同的事务的隔离级别下,快照读有什么不同呢?我们一起来做一些实验。

假设有InnoDB表:

t(id PK, name);

表中有三条记录:
shenjian
zhangsan
lisi

case 1,两个并发事务A,B执行的时间序列如下(A先于B开始,B先于A结束):

A1: start transaction;
         B1: start transaction;
A2: select * from t;
         B2: insert into t values (4, wangwu);
A3: select * from t;
         B3: commit;
A4: select * from t;

提问1:假设事务的隔离级别是可重复读RR,事务A中的三次查询,A2, A3, A4分别读到什么结果集?

提问2:假设事务的隔离级别是读提交RC,A2, A3, A4又分别读到什么结果集呢?

case 2,仍然是上面的两个事务,只是A和B开始时间稍有不同(B先于A开始,B先于A结束):

         B1: start transaction;

A1: start transaction;

A2: select * from t;
         B2: insert into t values (4, wangwu);
A3: select * from t;
         B3: commit;
A4: select * from t;

提问3:假设事务的隔离级别是可重复读RR,事务A中的三次查询,A2, A3, A4分别读到什么结果集?

提问4:假设事务的隔离级别是读提交RC,A2, A3, A4的结果集又是什么呢?

case 3,仍然是并发的事务A与B(A先于B开始,B先于A结束):

A1: start transaction;
         B1: start transaction;
         B2: insert into t values (4, wangwu);
         B3: commit;
A2: select * from t;

提问5:假设事务的隔离级别是可重复读RR,事务A中的A2查询,结果集是什么?

提问6:假设事务的隔离级别是读提交RC,A2的结果集又是什么呢?

case 4,事务开始的时间再换一下(B先于A开始,B先于A结束):

case 4,事务开始的时间再换一下(B先于A开始,B先于A结束):
         B1: start transaction;

A1: start transaction;

         B2: insert into t values (4, wangwu);

         B3: commit;
A2: select * from t;

提问7:假设事务的隔离级别是可重复读RR,事务A中的A2查询,结果集是什么?

提问8:假设事务的隔离级别是读提交RC,A2的结果集又是什么呢?

很多时候,我们以为自己懂了,其实…

本文来源:www.lxlinux.net/9723.html,若引用不当,请联系修改。

相关文章 8

1

阿里云免费领1年云服务器活动:2核/2G内存/1M带宽/40G系统盘(阿里云免费领取容量) 2分钟前

阿里云免费领1年云服务器活动开始了! 注册阿里云,免费领云服务器,多款高性能云服务器免费领取,快速搭建网站,部署开发环境,搭建...

2

Linux系统云环境搭建教程详解 5分钟前

本篇文章和大家分享一下Linux系统中云环境搭建的教程,本文实操记录、绝无水文,如有错误或遗漏欢迎各位小伙伴指正,下面一起来看看...

3

WordPress 5.2版本四月底上线且PHP版本最低需要5.6.2 6分钟前

WordPress博客是迄今为止世界上用的人最多的博客程序,具说世界排名500以内的网站有也使用wordpress搭建的,本博客也是使用WordPress搭建的,...

4

HostGator美国加州虚拟主机(HostGator) 8分钟前

美国作为全球互联网骨干部分,美国服务器宽带发展稳居世界第一,这也是为什么诸多有跨国际化项目服务器需求的公司选择美国服务器的...

5

买云服务器便宜划算吗?现在服务器租赁多少钱?(云服务器便宜还是自己买便宜) 11分钟前

买云服务器便宜划算吗? 很多个人或企业建站或做项目都开始租用云服务器了,云服务器也是服务器租赁的一种,只是一种云上的服务器。...

6

Contabo:新增英国机房VPS,活动期间免设置费,4核/8G/50 GB NVMe 或200 GB SSD 13分钟前

Contabo是一家老牌德国VPS主机商,提供高性能的VPS、VDS和服务器租用等业务。Contabo在业界的口碑非常好,以高性价比,高配置闻名于世。Co...

7

CubeCloud:香港VPS,CN2 GIA线路,美国VPS 回程CU4837 14分钟前

CubeCloud是一家成立于2016年的老商家,CubeCloud主要从事香港CN2、美国CN2以及香港国际、美国联通AS4837优化线路VPS,属于稳定性较为不错的商家...

8

厦门做装修设计的建站公司(厦门做装修设计的公司) 16分钟前

广州合优网络科技有限公司 成立于2007年,百度深圳公司网站建设供应商,广东省高新技术企业,获30余项技术专利,连续多年守合同重信用...