zoukankan      html  css  js  c++  java
  • 数据库中事务的ACID特性

    数据库中事务的ACID特性

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

    涉及面试题:

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

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

     

    ACID特性
    Atomicity
    Consistency
    Isolation
    Durability
    Atomicity(原子性)
    原子性:指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。
    通俗的说:我们有一堆的事情,它要么全做,要么全都不做,不能只做一半。比如我们的银行转账。我把钱转给你,把我的钱扣掉,然后把你的钱加上去。不能只做一半,只把我的钱扣掉,你的钱没有加上去。

     

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


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

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

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

    Durability(持久性)
    持久性指事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
    通俗的说:比如我将事务做完之后,这个结果是能持久下去的并能一直存下去。不管断电还是其他情况。


    关系型数据库都实现了ACID这样的一些事务特性。其中最关键的一点是Isolation(隔离性),互相不影响。
    ————————————————
    版权声明:本文为CSDN博主「Coder编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Michael_HM/article/details/88942376

  • 相关阅读:
    Service Name Port Number Transport Protocol tcp udp 端口号16bit
    linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
    soft deletion Google SRE 保障数据完整性的手段
    Taylor series
    Taylor's theorem
    Moving average
    REQUEST
    Unix file types
    mysqld.sock
    Tunneling protocol
  • 原文地址:https://www.cnblogs.com/zhaozhitong/p/12257168.html
Copyright © 2011-2022 走看看