什么是事务
事务就是拥有单独单元的一个或者多个sql语句组成的,,,在这个单元中每个sql语句都是相互依赖的,而整个这个单独的单元,她似乎就一个不可分解的整体,如果单元中某一条sql语句执行异常,那么整个这个单独单元将会回滚
事务四大特性(简称ACID)
- A — Atomicity 原子性 一个事务使用一个不可分割的整体,所以要么全部执行要么全部不执行。
- C — Consistency 一致性 一个事务的状态会使得一个一致状态从一个状态切换到另一个状态。
- I — Isolatio 隔离性 一个事务的执行不受其他事务的干扰
- D — Duradlity 持久性 说的是一个事务一旦提交就会永久的改变数据库的数据,数据是一个不可逆的过程,无法撤销
由于事务的隔离性,会引发一些问题
1.脏读现象,指的是A事务读取的时候读取到了B事务未提交的数据
2.不可重复读现象: 数据库中某个数据,多次查询结果不一致,被另一个事务修改并提交
3.虚读现象: 就是两个事务同时修改一个表造成数据异常
注意:不可重复读和虚读都是解决的已经提交事务数据,脏读是读取了未提交的事务
怎么解决事务隔离性引发的问题
我们只需要知道就可以,具体解决方法不用我们去书写
通过提高隔离性的等级来解决问题
1.Read uncommitted ------------最低级别,读取的是未提交的数据,不能保证数据的安全性
2.Read committed -----读取到已经提交的事务,解决了脏读现象
3.Repeatable ---------可以读取到重复的数据,可以解决掉脏读和不重复读的现象
4.Serializable -------- 锁表动作,我修改的时候别人不能修改,解决了脏读,不可重复读,虚读三个问题
本文详细解释了数据库事务的概念及其ACID特性,并介绍了不同隔离级别如何解决脏读、不可重复读和虚读等问题。
2903

被折叠的 条评论
为什么被折叠?



