数据库实现JDBC连接中设置的事务隔离级别的各种方式

时间:2013-02-27 19:55:19

标签: java transactions acid transaction-isolation

我们可以在JDBC连接上设置事务隔离级别,以便控制对并发事务之间的公共记录的读/写访问的可见性级别。数据库实现此目的的一种方法是在记录/表上放置不同类型的锁。

但是,数据库是否还有其他方式来实现这些事务级别?

1 个答案:

答案 0 :(得分:0)

我不想深入理解那些可以在许多关于数据库管理系统设计的好书中阅读的理论内容。

在采用获取和释放锁的悲观方法之后的数据库中,所有四个隔离级别都是使用锁实现的。有一堆乐观方法(例如,FOCC - 前向乐观并发控制以及BOCC - 后向...),它跟踪DML语句已读取或写入的数据以及是否即将提交事务它会针对所有其他事务检查这些读写集。如果这些集不相交,则可以编写和提交事务。如果事务的读取集与另一个(已提交)事务的写入集冲突,则数据库系统必须回滚事务。这可以在不使用锁的情况下完成。这些乐观的方法得到了很好的研究,并且可以在没有很大性能损失的情况下应用如果碰撞或多或少是异常的,并且数量很少。