• 数据库事务


    事务(Transaction)是并发控制的基本单位。

    所谓的事务,它是一个操作序列,这些操作要么都执行要么都不执行,它是一个不可分割的工作单位。

    事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 

    简单地说,事务是一种机制,用以维护数据库的完整性。

    事务的开始:
    
    BEGIN或START TRANSACTION都是显式开启一个事务;
    
    事务的提交:
    
    COMMIT或COMMIT WORK都是等价的;
    
    事务回滚:
    
    ROLLBACK或ROLLBACK WORK也是等价的;
    事务的开始提交回滚

    事务四个特性(ACID):
    1.原子性(Atomicity):事务中的各个操作要么都做要么都不做
    2.一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态
    3.隔离性(Isolation):一个事务的执行不能被其他事务干扰
    4.永久性(Durability):一个事务一旦提交,它对数据库中数据的改变就应该是永久性


    脏读:一个事务处理过程里读取了另一个未提交事务的数据

    不可重复读:一个事务内多次查询却返回了不同的数据值(强调update)

    幻读:一个事务范围多次查询返回不同的数据值(强调 insert,delete)

    Sring中五种隔离级别:

        TRANSACTION_NONE:不使用事务

        TRANSACTION_READ_UNCOMMITTED:允许脏读

        TRANSACTION_READ_COMMITTED:防止脏读,最常用的隔离级别,大多数数据库默认的隔离级别

        TRANSACTION_REPEATABLE_READ:防止脏读和不可重复读

        TRANSACTION_SERIALIZABLE:防止脏读,不可重复读,幻读,效率低

    回滚:回滚通常是由数据库日志管理的,回滚时反向执行从事务开始时的所以日志。其他运行的事务可能依赖于被回滚的事务的结果,在这种情况下,这些依赖的事务也会被回滚

  • 相关阅读:
    唱歌循序渐进
    523法则
    南北朝鲜
    全名K歌
    《如何进行接口mock测试》
    vue动态添加路由,跳转页面时,页面报错路由重复:vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes definition: { name: "Login", path: "/login" }
    npm install -g 和npm install --save-dev的关系
    vue项目安装依赖项的时候总是报错
    聊聊 OAuth 2.0 的 Token 续期处理
    Spring Security OAuth 格式化 token 输出
  • 原文地址:https://www.cnblogs.com/liuxgcn/p/11137586.html
Copyright © 2020-2023  润新知