您当前的位置: 首页 >  数据库

杨林伟

暂无认证

  • 3浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

数据库系列课程(14)-脏读、不可重复读、幻读

杨林伟 发布时间:2020-06-26 22:07:26 ,浏览量:3

脏读

描述:一个事务读取另一个事务还没有提交的的数据。

举例:事务1修改了一行数据,但是没有提交,此时事务2读取被事务1修改的数据,之后事务1因为某些原因rollback了,那么事务2读取到的数据就是脏数据了。

解决方法:把数据库隔离级别修改为READ_COMMITTED。

不可重复读

描述:在同一个事务内,两个相同的查询返回了不同的结果。

举例:事务1读取某一数据,事务2读取并修改该数据,事务1为了验证而再次读取改数据,得到不同的结果。

解决方法: 把数据库的隔离级别调整到REPEATABLE_READ。

幻读

描述:一个事务在前后两次查询同一个范围的时候、后一次查询看到了前一次查询未看到的行。

举例:比如事务1去修改当前查询的的3条结果,此时事务2去新增了一条记录,事务1修改完后,再次去查询,发现新增了一条事务2插入的数据,感觉这条数据是没有去修改过的一样,仿佛出现了幻觉,这就是幻读。

解决方法:把数据库隔离级别修改为SERIALIZABLE_READ。

注意:幻读 > 不可重复读 > 脏读 ,设置了SERIALIZABLE_READ就不用设置REPEATBALE_READ和READ_COMMITED了。

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.2193s