事务必须遵循的ACID特性:
原子性(atomicity):是指整个数据库事务是不可分割的工作单位。
一致性(consistency):是指事务将数据库从一种状态转变为下一种一致的状态。
隔离行(isolation):一个事务的影响在该事务提交前对其他事务都不可见。
持久性(durability):事务一旦提交其结果是永久性的。

事务控制语句
start transaction或begin:显示的开启一个事务。
commit或commit work:提交事务,并且对数据库做的修改成为永久性的。
rollback或rollback work:回滚事务,并且撤销正在进行的所有未提交的修改。
savepoint identifier:允许在事务中创建一个保存点,一个事务中可以有多个savepoint。
release savepoint identifier:删除一个事务的保存点。
rollback to savepoint identifier:把事务回滚到保存点。
set transaction:设置事务的隔离级别。
commit或rollback work是用来控制事务结束后的行为,是chain还是release的。通过completion_type参数控制。默认是0,no_chain,表示没有任何的操作;1,chain,表示马上自动开启一个事务;2,release,表示当事务提交后会自动端口与服务器的连接。

事务的隔离级别:
1.READ UNCOMMITTED
2.READ COMMITTED
3.REPEATABLE READ
4.SERIALIZABLE
在read committed和repeatable read事务隔离级别下,InnoDB存储引擎使用非锁定的一致性读。
在read committed事务隔离级别下,对于快照数据,非一致性读总是读取不被锁定行的最新一份快照数据。
在repeatable read事务隔离级别下,对于快照数据,非一致性读总是读取事务开始时的行数据版本。
SERIALIZABLE的事务隔离级别主要用于InnoDB存储引擎的分布式事务。