MySQL事务隔离级别

事物的原则
  1. 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。
  2. 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
  3. 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
  4. 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
隔离级别
  1. 读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读,幻读,不可重复读问题。
  2. 读已提交:一个事务只能读取另一个事务已经提交的修改。其避免了脏读,仍然存在不可重复读和幻读问题。
  3. 可重复读:同一个事务中多次读取相同的数据返回的结果是一样的。其避免了脏读和不可重复读,但是幻读依然存在。
  4. 串行化:事物串行运行。避免所有问题

在MySQL中,默认的隔离级别是REPEATABLE-READ(可重复读),并且解决了幻读问题。