事务相关的部分重点

事务相关的部分重点,第1张

事务相关的部分重点 事务相关部分重点 事务的ACID特性 原子性

Atomicity:事务是最小执行单位,像原子一样不可拆分,要么全部成功,要么全部失败

一致性

Consistency:执行事务前后的数据保持一致。比如转账业务无论成败总额不变

隔离性

Isolation:并发执行的事务不会相互影响,它们对数据库的影响和它们串行执行的效果是一样的

持久性

Durability:当事务被提交后,它对数据库中数据的改变是持久的。系统故障等不会导致数据丢失

数据库常见的并发异常 脏写

事务2已提交,事务1回滚,导致事务2提交的修改也被回滚

事务1事务2read(A) = 10read(A) = 10write(A) = 30commitwrite(A) = 20rollback(A = 10) 丢失更新

事务2已提交,事务1在之后提交,导致事务1提交的修改覆盖了事务2的修改

事务1事务2read(A) = 10read(A) = 10A = A + 10commitA = A - 10commit(A = 0) 脏读

事务2读取到事务1还未提交的脏数据

事务1事务2read(A) = 10write(A) = 20read(A) = 20rollback(A = 10) 不可重复读

事务1开启后,由于事务2提交了更新,导致事务1两次读取的结果不一致

事务1事务2read(A) = 10read(A) = 10write(A) = 20commitread(A) = 20 幻读

事务1开启后,由于事务2提交了更新,导致事务1两次读取同一范围的结果不一致

事务1事务2read(A < 5) = (1, 2, 3)write(A) = 4commitread(A < 5) = (1, 2, 3, 4)

幻读和不可重复读的区别在于,幻读针对不确定的多行数据,所以幻读通常出现在带有查询条件的范围查询中。

事务的隔离级别 隔离级别脏读不可重复读幻读脏写丢失更新READ-UNCOMMITTED可能可能可能可能READ-COMMITTED可能可能可能REPEATABLE-READ可能SERIALIZABLE

MySQL InnoDB 存储引擎默认隔离级别是REPEATABLE-READ

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

原文地址: http://outofmemory.cn/zaji/5582792.html

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

发表评论

登录后才能评论

评论列表(0条)

保存