当前位置:首页 > 短网址资讯 > 正文内容

短网址数据库InnoDB的快照读,到底和什么相关?

www.ft12.com6年前 (2018-09-05)短网址资讯2237

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


【并发控制,快照读,回滚段】辅助阅读:

《InnoDB并发如此高,原因竟然在这?》


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


【事务隔离级别】辅助阅读:

《4种事务的隔离级别,如何巧妙实现?》


假设有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;


提问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结束):

         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的结果集又是什么呢?


同样是读取历史数据版本,快照读究竟受什么影响呢?是不是很有意思?答案与原理明天揭晓


哦,对了,很多朋友问我,有什么推荐的短网址数据库相关的书籍,这里推荐两本。


一本,对了解短网址底层实现有帮助:

一本,对短链接高并发优化有帮助:

只推荐自己看过的书,希望对大家有帮助。

扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_532.html

分享给朋友:

相关文章

PHP编程需要掌握的20个要点,能极大提高效率

PHP编程需要掌握的20个要点,能极大提高效率

[摘要] 用单引号取代双引号来包括字符串,这样做会更快一些。由于PHP会在双引号包抄的字符串中征采变量,单引号则 不会,留意:只要echo能这么做,它是一种能够把多个字符串看成参数的“函数”用单引号取代双引号来包括字符串,这样做会更快一些。...

FT12短网址教你如何通过今日头条引精准流量,现学现用

FT12短网址教你如何通过今日头条引精准流量,现学现用

我发现许多人都对今天头条引流对比感兴趣,每天都有人在微信上问我做今天头条引流的玩法,我也多多少少的答复了他们。可是,头条规则改动太快,许多当时有效的玩法,没过多久就失效了。这儿说的玩法,是指文章或视频上留微信号的办法。由于只要留了微信号,才...

如果时间倒退到毕业那年,我一定要选择进大公司

如果时间倒退到毕业那年,我一定要选择进大公司

01我是一个工科女,专业水平通常般,结业后到深圳作业,如今已是第四个年初。刚结业的时分,我历来没有想过要进大公司,我觉得大公司要求必定对比严厉,上班肯定没有自在。我投的简历通常是面向小公司,那些超越100人的公司我是不投的,我就选定小公司了...

可以原谅,但不再信任!

可以原谅,但不再信任!

如果有人伤害了你,可以原谅他,但永远也不要再相信他。原谅是放过你自己,而盲目信任却只会给他再伤害你的机会。我们当然可以相信人会改过,但验证的机会就留给别人吧。那些伤害过你的人,放过他们,路过他们,挥挥手永不再见。即使生活给你一千个伤心的理由...

短网址使用技巧之高级篇:短网址访问统计分析模块

(1)时段计算剖析:时段概况计算、时段计算、日计算、月计算;(2)用户地域计算剖析;(3)用户来历计算剖析;(4)用户终端计算剖析:用户浏览器、操作体系、屏幕分辨率、言语环境;  短网址以此为数据支持,为以后拟定战略决策供给量化的依据。  ...

大妈死于郎咸平,IT男死于翟欣欣,企业主死于贾跃亭,金融男死于比特币……

大妈死于郎咸平,IT男死于翟欣欣,企业主死于贾跃亭,金融男死于比特币……作者:FT12短网址近日,知乎上有一个帖子很火,说如果薛之谦、翟欣欣、马蓉、贾跃亭、邓文迪和郎咸平凑在一起,谁能“套”走谁的钱?玩法是这样的:如果给薛之谦、翟欣欣、马蓉...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。