专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SQL

Sql SqlServer 脏读、 不可重读和幻读的理解

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
Sql SqlServer 脏读、 不可复读和幻读的理解

sql  SqlServer  不可复读和幻读的定义,是根据自己的理解写出来的,不是真正的定义,哈哈!

一、定义

1.脏读

   事务A向表中插入了一条数据,此时事务A还没有提交,此时查询语句能把这条数据查询出来,这种现现象称为脏读;脏读比较好理解

2.不可重复读

   一个事务A第一次读取的结果之后,  另外一个事务B更新了A事务读取的数据,A事务在第二次读取的结果和第一次读取的结果不一样这种现象称为不可重复读

3.幻读   

   事务A更新表里面的所有数据,这时事务B向表中插入了一条数据,这时事务A第一次的查询结果和第二次的查询结果不一致,这种现象我称为幻读。

 

二、延伸

造成脏读、不可复读 和幻读的根本原因是数据库锁的级别

 

隔离级别 脏读(Dirty read) 不可重复读(Non-repeatable read) 幻读(Phantom read)
READ_UNCOMMITED 允许 允许 允许
READ_COMMITED 不允许 允许 允许
REPEATABLE_READ 不允许 不允许 允许
SERIALIZBLE 不允许 不允许 不允许

 

MySQL的默认事务隔离级别是REPEATABLE_READ,ORACLE、SQL Server、DB2和PostgreSQL的默认事务隔离级别是READ_COMMITED。

 

参考:http://blog.csdn.net/v123411739/article/details/39298127

          https://my.oschina.net/feichexia/blog/202520

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: