五分钟熟记数据库事务
来源:互联网 发布:数据分析算法 知乎 编辑:程序博客网 时间:2024/05/16 18:23
事务的概念:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
⑴ 原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
⑵ 一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态,保持所有数据的完整性。
拿转账来说,转账前后两个人的账户金额总额应该是一样的。
⑶ 隔离性(Isolation)
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
⑷ 持久性(Durability)
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即使出现系统故障也是如此。
脏读,不可重复读,幻读(速记法:衣服不脏也要换)
脏读:一个事务读取到另一个事务还没有提交前修改的值,例如事务b修改了c的值从2修改到1,此时事务a读取属性c的值为1,并使用了这个值,但是事务b出现错误进行回滚,c属性又变为了1,但是事务a是基于没有提交的事务数据做的运算,所以是不对的。
不可重复读:一个事务在两次读取同一记录之间,这条记录被另一事务修改并提交,导致两次读取到的值不一致。
幻读:事务a批量修改数据,将c属性值为2的记录修改成1,修改完之后事务a并没有结束,此时事务b完成并提交一条新记录,且属性c值为2,这时事务a再读取c属性为2的数据发现竟然有一条记录。
产生以上现象的原因是事务穿插执行。
为了避免这种现象数据库为我们提供了四种隔离级别:
② Repeatable read (可重复读):除了幻读会发生外其他都不会发生。
③ Read committed (读已提交):可避免脏读的发生。
④ Read uncommitted (读未提交):任何情况都无法保证。
----------------更多精彩内容请关注微信公众号 IT农厂【ITFF01】------------------
阅读全文
0 0
- 五分钟熟记数据库事务
- 五分钟搞清楚MySQL事务隔离级别
- 五分钟学会之数据库~
- 数据库事务和锁(五)
- Spring学习笔记(五):数据库事务
- MySQL实战(五)数据库事务
- SQLite教程(五):数据库和事务
- 五分钟
- 少于五分钟的学习SQLite数据库设计
- Hibernate学习笔记(五)--数据库事务与并发
- Hibernate学习笔记(五)--数据库事务与并发
- java事务大总结(五) 扩展阅读一下ORACLE数据库事务隔离级别
- 五分钟教会五笔
- 五分钟教会五笔
- 要熟记
- 五分钟的话
- Maven五分钟入门
- 五分钟搞定Maven
- 模仿字迹写欠条,换脸开门禁AI时代如何对付坏人手中的人工智能?
- logback之三:输出日志到文件(滚动)
- Restful WebServices 学习笔记
- 一年中月份的天数
- Redis作者谈Redis应用场景
- 五分钟熟记数据库事务
- JPush极光推送Unity插件iOS设备无法获取DeviceToken
- Ubuntu14.04环境下编译Android
- NIFI 系统属性 System Properties之Web Properties
- 从今天开始重新写写博客
- 《Java编程技巧1001条》348条:e和π的获得
- 上传头像
- PCA、NMF、KNN在实战中的算法解析
- org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed (details follow): svn: E20