网站模板内容页,一套网页ui设计多少钱,网站建设课程设计实训总结,佛山网站建设熊掌号脏读、幻读、不可重复读
一、脏读
二、幻读
三、不可重复读
四、脏读、幻读、不可重复读的区别 一、脏读
脏读主要发生在隔离级别很低的事务之间#xff0c;就比如隔离级别设为Read Uncommitted,也就是读为提交。当我们有多个数据库并发的访问一张表的时候#xff0c;就…脏读、幻读、不可重复读
一、脏读
二、幻读
三、不可重复读
四、脏读、幻读、不可重复读的区别 一、脏读
脏读主要发生在隔离级别很低的事务之间就比如隔离级别设为Read Uncommitted,也就是读为提交。当我们有多个数据库并发的访问一张表的时候就会发生脏读。
那么到底什么是脏读
脏读就是假如我有两个数据库并发的访问一张表我的隔离级别是读未提交的也就是Read Uncommitted这种隔离级别下我只要发生数据的更新另一个并发访问的数据库也就会立马看到结果这样会发生脏读的情况。就比如有个学生要转专业那么我的一个数据库就对这个表的该学生的专业信息进行修改然后并发访问的另一个数据库就去读数据发现这个学生的专业已经被修改好了它就可能下线了但是由于种种原因第一个数据库在运行的过程中崩溃了事务还没有提交这时候就会发生回滚该学生的专业的数据又回滚成原专业但是另一个数据库不知道我发生回滚了它就认为这个学生的专业信息已经更改成功了这样子就产生了脏读的情况这种影响是十分可怕的
二、幻读
幻读是也是发生在并发访问同一张表的时候我第一次查表中的数据比如我要查公司员工年龄小于30岁的员工有哪些这时候我的第一个数据库就去查然后第一次查完之后并发访问的那个数据库的管理者接到人事通知有个应届生入职我们公司了录入一下他的个人信息然后我就录入了这个员工的个人信息而这时候我的第一个数据库觉得要多查几次保证我有没有漏掉哪些信息然后我就去查发现怎么又多了一行我是不是产生幻觉了刚刚好像没有这一行。
这就是幻读带来的影响会使得数据库的使用者对数据失去信任感也造成数据不一致的问题出现。
三、不可重复读
不可重复读通常发生在读提交的隔离级别之下也就是Read Committed,也就是别人提交了事务我这边才能看到结果
就比如我要查一个员工薪资情况两个数据库并发访问第一个数据库对表的数据查询在第二次查询之前我的第二个数据库对这名员工的薪资上调然后提交了事务第一个数据库现在对表进行第二次查询发现这个员工的薪资和第一个查到的结果不一样这就是不可重复读。 四、脏读、幻读、不可重复读的区别
首先这三者都是由于并发访问引起的问题但是
脏读是发生在两个事务之间由一个事务更改另一个事务读取前一个事务发生回滚操作后一个事务读到的结果不一致的问题幻读是发生在同一个事务内部通常发生在两次查询操作的中间另一个数据库对表进行了删除列插入新的元素增加列导致第二次查询的时候发现和第一次查询结果少了或者多了某些列或者行就好像产生了幻觉一样。不可重复读也是发生在同一个事务内部也是发生在二次查询的中间对表进行了操作他和幻读不一样的点在于幻读是查的时候多了或者少了某些列它是发现表中的某些数据和前一次查询的结果不一样的问题。