名词定义:
脏读:事务A读到事务B尚未提交的修改(update,Insert,Delete)记录后,事务B回滚了,事务A读取到的就是不存在的数据;
不可重复读:事务A第一次读取后,事务B进行了修改(Delete、Update),再当事务A读取时,发现数据在一个事务中前后不一;
幻读:和不可重复读类似,但幻读针对Insert操作,当事务A第一读取是表内有10行数据,此时事务B插入(Insert)了一条,当事务A再次读取时发现变成了11行,造成幻觉;
丢失更新:事务A和事务B拿到同一份数据1,A在1的基础上加1变成2后,此时B也在1的基础上加2变成3,由于B提交晚,因此最终数据变成了3,覆盖了事务A的操作,称为丢失更新;
mysql隔离级别:
事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交(read-uncommitted) | 是 | 是 | 是 |
不可重复读(read-committed) | 否 | 是 | 是 |
可重复读(repeatable-read) | 否 | 否 | 是 |
串行化(serializable) | 否 | 否 | 否 |
mysql默认的事务隔离级别为repeatable-read