文章目录
事务
用于维护数据的完整性,数据库操作要么完全执行,要么完全不执行
事务正确执行的四要素ACID
Atomicity(原子性)
一个事务要么完成要么全部不完成
Consistency(一致性)
事务要么完成至数据改变成功,要么不完成数据保持不变,原子性保证了一致性的实现
Isolation(隔离性)
多个事务并发执行时保证数据互不影响,事务的隔离级别解决了这个问题
Durability(持久性)
事务处理结束后,就算系统故障也不导致数据丢失
事务的并发
事务并发出现的问题
当出现事务并发执行时会出现的以下问题
脏读
例子:事务A读取了事务B尚未提交的数据,B因出现异常回滚,而A拿着读到的数据完成了事务。
不可重复度
例:同一张表,一个事务修改数据
的时候,另一个事务重复查询数据时会读出不同数据
幻读
例:同一张表,一个事务新增或删除
的时候,另一个事务重复查询数据时,要么多查询数据或少查询数据
解决事务并发出现的问题:事务的隔离级别
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交 | Y | Y | Y |
读以提交 | N | Y | Y |
可重复度 | N | N | Y |
串行化 | N | N | N |