所谓的事物就是一组原子性的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):最高的隔离级别。经过强制事物串行执行,避免了前面说的幻读的问题。