1.MySQL默认的事务隔离级别是可重复读。
2.脏读、幻读和不可重复读
- 脏读:一个事务读取到了另一个事务尚未提交的操作
- 幻读:一个事务多次查询时读取到了另一个已提交事务插入的数据
- 不可重复读:一个事务多次查询时读取到了另一个已提交事务修改、删除后的数据
3.MySQL事务的四种隔离级别
- 读未提交——READ UNCOMMITTED
该隔离级别的事务可以读取到其它事务中还没有提交的修改。依次,会产生脏读。脏读产生了,那当然也会产生不可重复读和幻读的问题。 - 读已提交——READ COMMITTED
该隔离级别的事务不能读取到还没有提交的其他事务中的修改,但是可以度舞蹈其它事务已提交的修改。因此不会产生脏读,但是会产生不可重复读和幻读。 - 可重复读——REPEATABLE READ
该级别是MySQL系统默认的事务隔离级别。该级别下的事务不能读取到其它已提交或者未提交的事务的修改。因此不会产生脏读,不可重复读、幻读。 - 序列化——SERIALIZABLE
这是事务的最高隔离级别,会强制事务进行排序,相当于对事务进行了加锁操作。但是也正因如此,执行效率也有所下降。