关闭

MySQL事物隔离级别

瞎溜达 1年前 ⋅ 149 阅读

为了达到事务的四大特性,数据库定义了4种不同的事务隔离级别:

  • READ-UNCOMMITTED(读未提交):最低的隔离级别,允许脏读,也就是可能读取到其他会话中未提交事务修改的数据,可能会导致脏读、幻读、不可重复读。
  • READ-COMMITTED(读已提交):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别,可以阻止脏读,但是幻读和不可重复读仍有可能发生。
  • REPEATABLE-READ(可重复读):对同一定段的多次读取结都是一致的,除非数据是被本身事务自已修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
  • SERIALIZABLE(可串行化):最高的隔离级别,完全服务ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,就是说,该级别可以防止脏读、不可重复读以及幻读。

MySQL默认采用的REPEATABLE-READ隔离级别。


全部评论: 0

    我有话说: