- mysql中的事务
是指作为单个逻辑工作单元执行的一系列操作要么完全地执行,要么完全地不执行
- 事务的特性(ACID)
- 原子性(Atomicity)
- 整个事务中的单元要么全部成功,要么全部失败
- 一致性(Consistency)
- 事务执行前后的结果必须一致
- 隔离性(Isolation)
- 事务之间应该相互独立,互相不受影响
- 持久性(Durability)
- 一旦事务提交,就会持久化保存 ,事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。
- 事务的两个动作
- 提交
- 回滚
4. 事务的并发问题
- 脏读
- 事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据
- 不可重复读
- 事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致 (侧重修改操作)
- 幻读
- 系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读 (侧重新增或删除)
5. mysql事务的隔离级别
事务隔离级别 脏读 不可重复读 幻读
读未提交(read-uncommitted) 是 是 是
读已提交(read-committed) 否 是 是
可重复读(repeatable-read) 否 否 是
串行化(serializable) 否 否 否