日期:2014-05-16 浏览次数:20505 次
隔离级别(isolation level)
?
?隔离级别定义了事务与事务之间的隔离程度。
?隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。
?ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:
??未提交读(read uncommitted)
??提交读(read committed)
??重复读(repeatable read)
??序列化(serializable)
?通过一些现象,可以反映出隔离级别的效果。这些现象有:
??更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。
??脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。
??非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。(A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data.? )
??幻像(phantom read):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。(A transaction reexecutes a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition.? )
?下面是隔离级别及其对应的可能出现或不可能出现的现象
? |
Dirty Read? |
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|