3

一个有点蹩脚的问题,但我很困惑......据我所知,隔离级别之间的区别是他们如何管理他们的锁(http://en.wikipedia.org/wiki/Isolation_(database_systems))。所以正如文章中提到的,有读、写和范围锁,但没有定义它们本身是什么。你可以做什么,不可以做什么。当我在谷歌上搜索它时,没有任何具体内容,相反,我对悲观锁、乐观锁、排他锁、间隙锁等新术语感到困惑。如果有人给我一个简短的概述,我会很高兴,也许会给我一些很好的材料来启发自己。

我开始研究隔离级别的最初问题是:

当我的事务隔离级别为 READ_COMMITED 时,当我将并发插入(Web 应用程序的不同用户)到一个表中时会发生什么。整张桌子是否被锁定?或者通常那里会发生什么:)?

提前致谢 !

4

3 回答 3

1

当我的事务隔离级别为 READ_COMMITED 时,当我将并发插入(Web 应用程序的不同用户)到一个表中时会发生什么。

“读取已提交”意味着其他会话在提交其事务之前无法看到新插入的行。在没有显式事务的情况下运行的 SQL 语句被包装在隐式事务中,因此“读取提交”会影响所有插入。

一些数据库使用锁实现“读提交”。例如,可以在插入的行上放置一个读锁,防止其他牵引读取它。其他数据库,如 Oracle,使用多版本并发控制。这意味着它们可以在插入之前表示数据库的一个版本。这允许他们在没有锁的情况下实现“读取提交”。

于 2013-05-26T14:38:30.957 回答
0

据我了解,隔离级别将决定如何以及何时获取和释放锁。 在此处输入图像描述

参考:http ://aboutsqlserver.com/2011/04/28/locking-in-microsoft-sql-server-part-2-locks-and-transaction-isolation-levels/

于 2016-12-15T08:27:02.073 回答
-2

这就是我一直在寻找的...

http://en.wikipedia.org/wiki/Two-phase_locking

于 2013-05-26T19:08:22.173 回答