首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可序列化的隔离级别

问可序列化的隔离级别
EN

Stack Overflow用户
提问于 2018-01-06 00:52:06
回答 1查看 212关注 0票数 1

如果可序列化隔离级别有效,表X的内容是什么?

由于可序列化,我认为事务B不能执行任何操作。因此,行b不被放置在表X中,并且不执行事务A的删除行b操作。因此,表X只包括行a;然而,我的教授拒绝了这一理论,没有任何解释。

代码语言:javascript
复制
   Transaction A     Transaction B

1) Begin             ....
2) Insert row a      Begin
3) ....              Insert row b
4) ....              Delete row a
5) Delete row b      ....
6) Commit            ....
7)                   Commit

有人能解释为什么我的理论是错误的吗?

EN

回答 1

Stack Overflow用户

发布于 2019-02-18 22:32:22

隔离级别仅适用于本地事务及其数据视图,而不适用于其他事务。其他连接的客户端可以看到各种奇怪的数据,因为它们不是任何事务所具有的隔离的一部分。至少在MySQL中,可序列化隔离级别不持有任何表锁。因此,TXA不会阻止其他写入的发生。

TXA将在t5和complete时影响零行。

TXB将在t4和complete时影响零行。

该表将有2行,a和b。

对于其他隔离级别,结果会有所不同。

对于表锁,时间安排如下所示:

代码语言:javascript
复制
0) Begin             ....
1) LOCK TBL WRITE    ....
2) Insert row a      Begin
3) ....              ....
4) ....              ....
5) Delete row b      ....
6) Commit            ....
8) UNLOCK            ....
7)                   Insert row b
8)                   Delete row a
9)                   Commit
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48117929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档