首页 > 数据库技术 > 详细

数据库的脏读、不可重复读和幻读区别

时间:2019-08-19 19:03:46      阅读:105      评论:0      收藏:0      [点我收藏+]

1、数据库的ACID

        在数据库中,事务是要满足ACID的,即A: 原子性、C:一致性、I:隔离性、D:持久性。其中隔离性是最放松的一个,可以利用数据库锁的机制或者版本并控制机制获取更高的隔离级别,但是随着隔离级别的提高,数据的并发能力有所下降。因此如何在并行和隔离性之间做一个权衡是一个至关重要的问题。

2、读数据出现的几种问题:

1) 脏读:当一个事务正在访问数据,并对数据进行了修改,但是该修改确未提交到数据库中,这时另外一个事务也访问这个数据,然后使用了这个修改的数据,那么读到的这个数据就是脏数据。

(读到了未提交的数据,解决方法:在写的时候加锁)

2)不可重复读:一次事务内的两次(多次)相同查询,查询到了不同的结果。(在读数据的时候加锁)

3)幻读:一次事务内多次查询返回的结果集不一样(比如增加了或者减少了行记录)。(串行化即可解决)。

脏读--------->不可重复读----------->幻读,事务的隔离性在不断提高,但是并行不断降低。

 

数据库的脏读、不可重复读和幻读区别

原文:https://www.cnblogs.com/luminousWg/p/11378937.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!