带你了解数据库中事务的ACID特性

前言

前面咱们介绍过数据库中 带你了解数据库中JOIN的用法 带你了解数据库中group by的用法 的相关用法。本章节主要来介绍下数据库中一个很是重要的知识点事务,也是咱们项目中或面试中常常会遇到的知识点。若有错误还请你们及时指出~ mysql

涉及面试题:git

  • 请讲下你对事务的理解?
  • 讲下事务有那几大特性?
如下都是采用mysql数据库

事务

事务(Transaction),是咱们关系型数据库中很是重要的一个概念,它要符合ACID特性。是由一组SQL语句组成的一个程序执行单元(Unit),该执行单元要么成功Commit,要么失败Rollback。github

事务

ACID特性

  • Atomicity
  • Consistency
  • Isolation
  • Durability

Atomicity(原子性)

原子性:指事务是一个不可再分割的工做单元,事务中的操做要么都发生,要么都不发生。
通俗的说:咱们有一堆的事情,它要么全作,要么全都不作,不能只作一半。好比咱们的银行转帐。我把钱转给你,把个人钱扣掉,而后把你的钱加上去。不能只作一半,只把个人钱扣掉,你的钱没有加上去。面试

原子性

Consistency(一致性)

一致性指事务开始以前和事务结束之后,数据库的完整性约束没有被破坏。
通俗的说:我和你的钱加起来一共是2000,那么无论我和你之间如何转帐,转几回帐,事务结束后咱们的钱相加起来应该还得是2000,这就是事务的一致性。
一致性sql

Isolation(隔离性)

隔离性指多个事务并发访问时,事务之间是隔离的,一个事务不该该影响其它事务运行效果。
通俗的说:多个用户并发访问操做同一张表时,数据库为每个用户开启的事务,不能被其余事务的操做所干扰,多个并发事务之间要相互隔离。数据库

数据库定义了4个隔离的级别:编程

  • READ_UNCOMMITTED
  • READ_COMMITTED
  • REPEATABLE_READ
  • SERIALIZABLE
下篇文章咱们将专门介绍事务的隔离性

Durability(持久性)

持久性指事务所对数据库所做的更改便持久的保存在数据库之中,并不会被回滚。
通俗的说:好比我将事务作完以后,这个结果是能持久下去的并能一直存下去。无论断电仍是其余状况。
持久性微信

关系型数据库都实现了ACID这样的一些事务特性。其中最关键的一点是Isolation(隔离性),互相不影响。

文末

本章节主要简单介绍了数据库中事务的ADID特性,下一章咱们将详细介绍事务 隔离
欢迎关注公众号: Coder编程
获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!

微信公众号

推荐阅读

带你了解数据库中JOIN的用法 并发

带你了解数据库中group by的用法 学习

一篇带你读懂TCP之“滑动窗口”协议

Github我的主页目录

Gitee我的主页目录

欢迎你们关注并Star~

相关文章
相关标签/搜索