短网址数据库InnoDB的快照读和什么相关?分享

InnoDB是非常适合​ 短网址业务​​的存储引擎,其多版本并发控制(Multi Version Concurrency Control, MVCC),快照读(Snapshot Read)机制,能够通过读取回滚段(rollback segment)中数据的历史版本,在事务读取记录的时候不用加锁,以支持超高的并发。

在读提交(Read Committed, RC),可重复读(Repeated Read, RR)两个不同的事务的隔离级别下,快照读的玩法有什么差异,又和什么因素有关呢?

假设有InnoDB表:

t(id PK, name);

表中有三条记录:

1, shenjian

2, zhangsan

3, 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;

​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;

事务的开始时间不一样,会不会影响“快照读”的结果呢?

​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;

​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;

以上是部分情况整理的分享,具体问题具体对待考虑不做为权威发布!

:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值