zoukankan      html  css  js  c++  java
  • 带你了解数据库中事务的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(隔离性),互相不影响。

    文末

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

    微信公众号

    推荐阅读

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

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

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

    Github个人主页目录

    Gitee个人主页目录

    欢迎大家关注并Star~

  • 相关阅读:
    谷歌浏览器本地调试时调用服务跨域
    SVN提交时忽略不必提交的文件夹和文件,如node_modules
    热点链接实现不规则菜单
    easyui分页控件的应用
    Filter过滤器的应用
    SVG绘图学习总结
    VS2010无法调试页面问题
    java学习
    webservice配置
    jQuery
  • 原文地址:https://www.cnblogs.com/coder-programming/p/10680490.html
Copyright © 2011-2022 走看看