Mysql的事务是什么?什么是脏读?幻读?不可重复读?

Posted qq_53667037

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql的事务是什么?什么是脏读?幻读?不可重复读?相关的知识,希望对你有一定的参考价值。

事务 

                就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所

       有sql语句都将被取消执行 事务的四大特性

事务的四大特性 

        原子性(Atomic):

                                        事务执行,即不可再分,要么不执行

        一致性(Consist):

                                        事务开始之前和事务结束后,数据库的完整性约束没有被破环

        隔离性(Isolated):

                                          事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间

                                          某一时刻的数据  

        持久性(Durable):

                                          事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库

                                          中,并不会被回滚  

脏读

        读取了未提交的新事物,然后被回滚了

        事务A读取了事务B尚未提交的数据,如果事务B回滚,则A读取使用了错误的数据

        解决  事务在读的时候,禁止读取未提交的事务

 幻读

        在事务A多次读取构成中,事务B对数据惊醒了新增操作,导致事务A多次读取的数据不一致 

不可重复读

        事务B读取两次数据资源,子啊这两次的过程中事务A修改了数据,导致事务B在两次的读取

        出来的数据不一致。 

事务的隔离级别 

                为了解决以上问题,关系型数据库提供给四种事务的隔离级别:读未提交,读已提交,可重复读,串行化,级别越高越能保证数据的完整性和一致性,但执行效率也越低 

        读未提交

                 所有的事务都可以看到其他未提交的事务的执行结果,不能解决脏读,幻读,可重复读

        读已提交

                一个事务的更新操作结果只有在该事务提交之后,另一个事务才可能读到同一数据的更

                新后的结果 ,可以防止脏读。

        可重复读

                一个事务多尺度同一个数据,在这个事务还没结束时,其他事务不能访问该数据,这样

                就可以在同一事物内两次读到的数据是一样的 ,可以防止脏读和不可重复读。

        串行化

                事务只能一个接着一个地执行,不能并发执行。 

                 

                 

  1.        

以上是关于Mysql的事务是什么?什么是脏读?幻读?不可重复读?的主要内容,如果未能解决你的问题,请参考以下文章

Mysql的事务是什么?什么是脏读?幻读?不可重复读?

什么是脏读,幻读和不可重复读

什么是脏读,不可重复读,幻读

什么是脏读,不可重复读,幻读

数据库 - 脏读不可重复读幻读。

MySQL的事务与锁 转