码迷,mamicode.com
首页 > 数据库 > 详细

关于数据库中的四种隔离级别

时间:2017-06-27 11:01:29      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:结果   ted   提交   导致   commit   ble   数据库   tab   mit   

1.read uncommitted

可以看到未提交的数据(脏读),举个例子:别人说的话你都相信了,但是可能他只是说说,并不实际做。

2.read committed

读取提交的数据。但是,可能多次读取的数据结果不一致(不可重复读,幻读)。用读写的观点就是:读取的行数据,可以写。

3.repeatable read(MySQL默认隔离级别)

可以重复读取,但有幻读。读写观点:读取的数据行不可写,但是可以往表中新增数据。在MySQL中,其他事务新增的数据,看不到,不会产生幻读。采用多版本并发控制(MVCC)机制解决幻读问题。

4.serializable

可读,不可写。像java中的锁,写数据必须等待另一个事务结束。


【脏读:】事务一在未提交时,事务二查询到事务一更新的数据,此时事务二读取到的是事务一种保存在内存    上的数据。

【不可重复读:】事务一在查询数据,查询了俩次不一样,这俩次中间,事务二更新了数据,导致数据不一致。

【幻读:】事务一俩次查询表中记录数,得到的结果不一样,因为这俩次中间事务二添加或删除了数据行数据,    导致记录行数不一致。





关于数据库中的四种隔离级别

标签:结果   ted   提交   导致   commit   ble   数据库   tab   mit   

原文地址:http://www.cnblogs.com/gengkai0727/p/7083718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!