zoukankan      html  css  js  c++  java
  • 数据库的事务机制

    事务机制

    1. 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;

    2. 一致性: 执行事务前后,数据库从一个一致性状态转换到另一个一致性状态。

    3. 隔离性: 并发访问数据库时,一个用户的事物不被其他事务所干扰,各并发事务之间数据库是独立的;

    4. 持久性: 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库 发生故障也不应该对其有任何影响。

    1. 为了达到上述事务特性,数据库定义了几种不同的事务隔离级别:

    • READ_UNCOMMITTED(未提交读): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读

    • READ_COMMITTED(提交读): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生

    • REPEATABLE_READ(可重复读): 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。

    • SERIALIZABLE(串行): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。但是这将严重影响程序的性能。通常情况下也不会用到该级别。

      这里需要注意的是:Mysql 默认采用的 REPEATABLE_READ隔离级别 Oracle 默认采用的 READ_COMMITTED隔离级别.

  • 相关阅读:
    Windows下安装ZooKeeper
    解决不同库之间$对象的冲突
    Entity Framework的基本操作
    IIS6与IIS7中的w3wp工作进程
    Asp.Net网站的的编译与发布原理
    MVC中JavaScript和CSS的自动打包与压缩
    EF CodeFirst示例
    EF CodeFirst下的自动迁移
    分布式调度平台XXL-JOB源码分析-时序图
    分布式调度平台XXL-JOB源码分析-执行器端
  • 原文地址:https://www.cnblogs.com/zquan/p/10644223.html
Copyright © 2011-2022 走看看