事务隔离的种级别

本文详细解释了数据库事务处理中的几种常见问题,包括脏读、不可重复读和幻读,并介绍了四种不同的隔离级别来解决这些问题:读未提交、读已提交、可重复读及可串行化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直以为自己的数据库学的还不错,但今天作了点极端条件下的测试,发现自己的知识欠缺那么多。
不过没有关系,意识到了差距,能够弥补就成。以下内容摘自网络

脏读(dirty reads)
一个事务读取了另一个未提交的并行事务写的数据。


不可重复读(non-repeatable reads)

一个事务重新读取前面读取过的数据, 发现该数据已经被另一个已提交的事务修改过。

幻读(phantom read)

一个事务重新执行一个查询,返回一套符合查询条件的行, 发现这些行因为其他最近提交的事务而发生了改变。

隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)
读未提交(Read uncommitted) 可能 可能 可能
读已提交(Read committed) 不可能 可能 可能
可重复读(Repeatable read) 不可能 不可能 可能
可串行化(Serializable ) 不可能 不可能 不可能

 

http://epub.itpub.net/3/4.htm

l          更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。

l          脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。

l          非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。(A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data.  )

l          幻像(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.  )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值