多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务间要相互进行隔离
四种隔离级别
- 读未提交
可以读到未提交的内容,因此,在这种隔离级别下,查询是不会加锁的,也由于查询的不加锁,所以这种隔离级别的一致性是最差的。 - 读提交
只能读到已经提交了的内容。会发生不可重复读 ,两个并发的事务,事务A事先读取了数据,事务B紧接了更新了数据,并提交了事务,而事务A再次读取该数据时,数据已经发生了改变。 - 可重复读
专门针对“不可重复读”这种情况而制定的隔离级别,是MySql的默认隔离级别。当某个事务启动时,就不允许进行修改操作,但避免不了幻读,因为幻读是由于插入或者删除操作而产生的。 - 串行化
这是数据库最高的隔离级别,这种级别下,事务一个一个排队执行。最强一致性
但是执行效率奇差,性能开销也最大。一般不使用