首页 > 代码库 > 重读A Critique of ANSI SQL Isolation Levels
重读A Critique of ANSI SQL Isolation Levels
A Critique of ANSI SQL Isolation Levels
1. 1995年发表。
2. SQL是以现象(phenomena)来定义四个隔离级别的,但是与实际系统差别太大。
3. SQL没有涵盖某些常见的隔离级别,特别是多版本并发控制下的Snapshot Isolation。
4. 关系数据库ACID默认是要支持可串行化的,不过实际系统大多提供了较低的隔离级别。这也为NoSQL、NewSQL只提供较低的隔离级别提供了论据。
5. SQL标准的phenomena包括:Dirty Read、Non-repeatable Read和Phantom。
6. Phenomena与anomalies是有区别的。
7. SQL的隔离级别带有很强的封锁实现的影响,用phenomena来定义隔离级别是为了允许非封锁的实现。
8. Gray以前是用一致性程度来定义不同的隔离级别的,它和SQL的定义是不一样的。
9. 什么是可串行化是有严格定义的。
10. SQL定义的现象可以从严解释或从宽解释(这就是用自然语言定义的缺点,容易导致歧义)。
11. SQL对可串行化的定义很是比较明确的,只不过那个表格容易误导大家。这也是为什么Oracle等只实现了Snapshot Isolation的产品也被大家误认为支持可串行化。
12. 经典的读锁、写锁、两阶段锁以及对应的隔离级别的定义。
13. 隔离级别之间的关系定义:强,弱,等价,不可比。
14. DB2也就是C J Date定义的游标稳定性和可重复读级别。
15. Dirty Write、Lost Update、Constraint violation(Read Skew、Write Skew)。
16. 不同多版本系统的做法,例如:Oracle的Read Consistency。
17. SQL里头的REPEATABLE READ其实名不副实。
xx. 虽然拿这些现象来定义不同的隔离级别看起来不太严谨,但是它们有助于我们识别不同隔离级别、不同实现(不管它们给隔离级别起了什么花里胡哨的名字)的差异。
1. 1995年发表。
2. SQL是以现象(phenomena)来定义四个隔离级别的,但是与实际系统差别太大。
3. SQL没有涵盖某些常见的隔离级别,特别是多版本并发控制下的Snapshot Isolation。
4. 关系数据库ACID默认是要支持可串行化的,不过实际系统大多提供了较低的隔离级别。这也为NoSQL、NewSQL只提供较低的隔离级别提供了论据。
5. SQL标准的phenomena包括:Dirty Read、Non-repeatable Read和Phantom。
6. Phenomena与anomalies是有区别的。
7. SQL的隔离级别带有很强的封锁实现的影响,用phenomena来定义隔离级别是为了允许非封锁的实现。
8. Gray以前是用一致性程度来定义不同的隔离级别的,它和SQL的定义是不一样的。
9. 什么是可串行化是有严格定义的。
10. SQL定义的现象可以从严解释或从宽解释(这就是用自然语言定义的缺点,容易导致歧义)。
11. SQL对可串行化的定义很是比较明确的,只不过那个表格容易误导大家。这也是为什么Oracle等只实现了Snapshot Isolation的产品也被大家误认为支持可串行化。
12. 经典的读锁、写锁、两阶段锁以及对应的隔离级别的定义。
13. 隔离级别之间的关系定义:强,弱,等价,不可比。
14. DB2也就是C J Date定义的游标稳定性和可重复读级别。
15. Dirty Write、Lost Update、Constraint violation(Read Skew、Write Skew)。
16. 不同多版本系统的做法,例如:Oracle的Read Consistency。
17. SQL里头的REPEATABLE READ其实名不副实。
xx. 虽然拿这些现象来定义不同的隔离级别看起来不太严谨,但是它们有助于我们识别不同隔离级别、不同实现(不管它们给隔离级别起了什么花里胡哨的名字)的差异。
重读A Critique of ANSI SQL Isolation Levels
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。