使用测试环境: MacOS Mojave 10.14.2 + mysql8.0.12+InnoDB(默认搜索引擎)

事务的基本要素(ACID)
- 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
- 一致性(Consistency):事务开始前和结束后,数据的完整性约束没有被破环。比如A向B转了钱,转账前后钱的总数不变。
- 隔离性(Isolation):多个用户并发访问数据数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间的数据相互隔离。比如事务A和事务B都修改同一条记录,这条记录就会被重复修改或者后者会覆盖前者的修改记录。
- 持久性(Durability):事务完成后,事务对数据库的更新被保存到数据库,其结果是永久的。
MySQL8事务隔离级别
mysql8的可重复读(repeatable-read中不会出现幻读的情况)
| 事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
| 读未提交(read-uncommitted) | 是 | 是 | 是 |
| 不可重复读(read-committed) | 否 | 是 | 是 |
| 可重复读(repeatable-read) | 否 | 否 | 否 |
| 串行化(serializable) | 否 | 否 | 否 |
事务的并发问题
1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据
2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读

最低0.47元/天 解锁文章
1030

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



