MySQL中的事务

一、事务的概念:

  事务就是一组原子性的SQL语句,事务内的语句,要么全部执行成功,要么全部执行失败

二、事务的特性

  原子性(atomicity): 一个事务中的SQL语句要么全部执行成功,要么全部执行失败。不存在一部分SQL语句执行成功,一部分SQL语句执行不成功。

  一致性(consistency):在执行事务时,其中一部分SQL执行成功。此时系统发生崩溃,整个事务将全部回滚,不会出现一部分成功的情况,因为此时事务并未提交。

  隔离性(isolation): 一个事务在提交之前所做的修改在提交之前对其他事务是不可见的。

  持久性(durability): 事务一旦提交,就会将修改永久地保存到数据库中

三、事务的隔离级别

  未提交读:在事务未提交之前,所做的修改对其他事务是可见的(脏读)

  提交度:一个事务从开始直到提交之前,所作的修改对其他事务都是不可见的, 提交之后对其他事务是可见的(不可重复读)

  可重复读:在同一事务中多次读取同样的记录的结果是一致的(幻读)

          InnoDB通过MVCC的方式解决了在快照读下幻读的问题,以及通过Next-Key的方式解决了在当前读下的幻读问题

  可串行化:该级别是最高的隔离级别,通过强制串行事务的方式,解决幻读的问题

posted @ 2018-10-18 21:43  韵文  阅读(173)  评论(0编辑  收藏  举报