浅谈数据库的隔离级别

数据库的隔离级别指的是多个用户操作统一个数据库的同一张表时,相互影响的程度大小,数据库的隔离级别越高,数据库的相互影响的风险也就越小,但是对应的数据库的运行效率也就越低,数据库总共有四种隔离级别,下面一一介绍,介绍隔离级别之前,先来介绍数据库操作可能出现的几个问题;

1、脏读:脏读是在一个事物中读取到了别人未提交的数据,例如有2个事物A和B,A修改了一条记录但是没有提交,此时B读取到了A修改的这条没有提交的记录,这就叫脏读;

2、不可重复读:不可重复读是在一次事物中前后两次读取数据库的结果不一致,其本质是2次读取数据库之间有别的事物修改了数据库,例如有事物A第一次读取数据库的某一条记录,然后去做别的逻辑处理了,此时事物B修改这条记录,事物A再读取这条记录的时候发现和第一次读取的记录不一样,这就是不可重复读;

3、幻读:幻读是指两次读取的数据不一致的情况,例如有2个事物A和B,事物A第一次读取age=100的记录返回1条记录,此时事物B向表中插入一条age=100的记录,事物A再次读取age=100时返回2条记录,避免方法是事物处理完成之前,不能向表里面插入任何数据;

接着我们来看看数据库为我们提供的集中数据库隔离级别:

读未提交:read uncommitted ,可能出现脏读、不可重复读、幻读;

读已提交:read commited,可能出现不可重复读、幻读;

可重复读: repeatable read,可能出现幻读;

串行读:Serializable,以上情况都不会出现

效率由上到下依次减小,安全依次增高;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值