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

Mysql的事务是什么?什么是脏读?幻读?不可重复读?,第1张

事务 

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

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

事务的四大特性          原子性(Atomic):

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

        一致性(Consist):

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

        隔离性(Isolated):

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

                                          某一时刻的数据  

        持久性(Durable):

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

                                          中,并不会被回滚  

脏读

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

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

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

 幻读

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

不可重复读

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

        出来的数据不一致。 

事务的隔离级别 

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

        读未提交

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

        读已提交

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

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

        可重复读

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

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

        串行化

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

                 

                 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/2990246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存