数据库事务相关
参考事务(正常) | 脏读 | 虚幻读 | 重复读 | 回滚丢失更新(一类) | 提交丢失更新(二类) |
启动事务 | 启动事务 | 启动事务 | 启动事务 | 启动事务 | 启动事务 |
读出1000 | 读出1000 | 读出1000 | 读出1000 | 读出1000 | |
加100 [更新/插入] | |||||
读出1100 (别事更新) | -100 | 加100 | |||
提交事务(1100) | |||||
读出1100 (别事插入) | 读出1100 (别事更新) | 回滚(1000) (覆盖别事) | 提交(1100) (覆盖别事) | ||
… | … | … |
第一类丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖。
- 脏读:一个事务读到另一个事务未提交的[更新]数据。
- 虚读/幻读:一个事务读到另一个事务已提交的[新插入]的数据。
- 不可重复读:一个事务读到另一个事务已提交的[更新]数据。
第二类丢失更新:这是不可重复读中的特例,一个事务覆盖另一个事务已提交的更新数据。
锁等级
- Serializable(串行化):一个事务在执行过程中完全看不到其他事务对数据库所做的更新。避免所有事务的并发问题,但性能影响最严重
- Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,但是不能看到其他事务对已有记录的更新。
- Read Commited(读已提交数据):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,而且能看到其他事务已经提交的对已有记录的更新
- Read Uncomitted(读未提交数据):一个事务在执行过程中可以拷打其他事务没有提交的新插入的记录,而且能看到其他事务没有提交的对已有记录的更新。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Pi 2.0 用户文档手册 PDF 文档
下一篇: JavaScript 集合的方法
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论