事务的基础知识
- 事务的定义:
一个或一组指令,要么全部执行成功,要么全部撤销不执行。 - 事务的属性(ACID):
Atomicity 原子性
Consistency 一致性
Isolation 隔离性
Durability 持久性
原子性:事务是一个原子操作,要确保命令要么全部完成,要么全部撤销不执行。如果事务在执行过程中发生错误,就要回滚到执行之前的状态,就像这个事务没有执行过一样。
一致性:事务执行前后的数据的完整性要保持一致。
隔离性:事务执行过程中对数据的修改,在事务提交前对其它事务都不可见。
持久性:一旦事务完成,它对数据库中数据的改变都是永久性的。 - 事务的隔离级别:
读未提交:一个事务可以读取到另一个未提交事务的数据。会产生脏读问题。
读已提交:一个事务要等另一个事务提交后才能读取到数据。会产生不可重复读问题。
可重复读:一个事务读取数据时,不再允许修改操作。会产生幻读问题。(不可重复读对应的是修改Update操作,幻读对应的是插入Input操作)
串行化:事务只能一个接一个执行,不能并发执行。
事务的隔离级别是为了解决多事务执行过程中产生的脏读,不可重复读,幻读等问题。
其中隔离级别越严格,安全性越高,但数据库的并发性能也就越低。
参考链接:https://www.cnblogs.com/ubuntu1/p/8999403.html
https://blog.csdn.net/u011861874/article/details/81539306
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?