数据库的隔离级别介绍

本文介绍了数据库的隔离级别,包括读未提交、读已提交,分析了各隔离级别如何影响多线程操作数据的正确性,例如脏读、重复读和幻读。通过实例展示了不同隔离级别下的数据变化,帮助理解其工作原理。

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

数据库的隔离级别介绍:

隔离级别的作用是能够保证多个线程同时操作一个数据时的正确性。


1.读未提交:当你修改或者增加了一个数据,没有进行提交导致的脏读,重复读,幻读等。

(备注:黑色窗口表示窗口一:白色窗口表示窗口二)


事务设置为读未提交,然后开启事务。

这是事先建立的一个user表数据

然后对其进行更新操作,这是我们来看下窗口一和窗口二的数据。

可以明显发现两者的数据一致,这就是读未提交所造成的脏数据。


2.读已提交:这种隔离级别不会造成脏数据的出现,要等到提交后,别人才能读取到数据,但是不能解决不可重复读和幻读等问题。

然后在窗口一中,将隔离级别设置为读已提交。时也需要开启事务,然后查看当前user表的数据。然后在窗口二中进行数据更新操作:



 


此时在窗口二中更新数据,这时候我们再来查看窗口一的user表数据。



只有当窗口二提交后(commit),窗口一的数据才能更新

同时重复读和序列读,可以依照这种类似的方法修改当前的事务隔离级别,来了解其中大概的流程。(叙述的可能不太清楚,动手操作一遍就清晰了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值