mysql的事物

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

  1、事物拥有四大特征:并发

 

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

 

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

 

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

 

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

 

    事物的原子性、一致性、持久性三个特征是经过事物日志来维持的,事物日志记录了对事物的每次的更新,若是由于某些缘由事物出现错误,则能够经过撤销事物对数据库  的更改,是事物回滚到数据库执行事物以前的初始状态。it

 

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

 

  2、事物的隔离级别table

 

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

 

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

 

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

 

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

 

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

相关文章
相关标签/搜索