zoukankan      html  css  js  c++  java
  • mysql的事物

      所谓的事物就是一组原子性的SQL语句,或者说是一个独立的工作单元。

      1、事物拥有四大特征:

     

        ①原子性(atomicity):一个事物必须被分为一个不可分割的的最小单元,整个事物中的所有操作要么全部提交,要么全部回滚,这就是事物的原子性。

     

        ②一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。即数据库事物不能破坏数据的完整性和一致性。

     

        ③隔离性(isolation):指的是在并发环境中,多个事物处理相同的数据,每个事物都有各自的完整数据空间。

     

        ④持久性(durability):一旦事物提交,则其所做的修改就会永久保存到数据库中。

     

        事物的原子性、一致性、持久性三个特征是通过事物日志来维持的,事物日志记录了对事物的每次的更新,如果因为某些原因事物出现错误,则可以通过撤销事物对数据库  的更改,是事物回滚到数据库执行事物之前的初始状态。

     

       事物的隔离性是通过锁机构来实现的,拥有各自的独立空间。

     

      2、事物的隔离级别

     

        SQL标准定义了四种隔离级别:

     

        无提交读(Read Uncommitted:Read Uncommitted级别中,事物的修改,即使没有提交,对其他事物也是可见的。事物可以读取未提交的数据,这也被称为脏读(Dirty Read.

     

        提交读(Read Committed:一个事物从开始知道事物提交之前,所做的任何修改对其他事物都是不可见的,这也叫不可重复读(nonrepeatable,执行两次相同的查询,得到不同的结果。

     

        可重复读(Repeatable Read:该级别保证了同一个事物中多次读取同样的结果是一致的。可能会导致幻读。

     

        可串行化(Serializable:最高的隔离级别。通过强制事物串行执行,避免了前面说的幻读的问题。

     

  • 相关阅读:
    Leetcode 92. Reverse Linked List II
    Leetcode 206. Reverse Linked List
    Leetcode 763. Partition Labels
    Leetcode 746. Min Cost Climbing Stairs
    Leetcode 759. Employee Free Time
    Leetcode 763. Partition Labels
    搭建数据仓库第09篇:物理建模
    Python进阶篇:Socket多线程
    Python进阶篇:文件系统的操作
    搭建数据仓库第08篇:逻辑建模–5–维度建模核心之一致性维度2
  • 原文地址:https://www.cnblogs.com/wenxianguo/p/4004812.html
Copyright © 2011-2022 走看看