关于事务的隔离级别有四种 读未提交、读已提交、可重复读、串行化 在四种隔离级别中,对于事务的并发操作可能会出现脏读、幻读、不可重复读以及事务丢失
读未提交: 一个事务读取另一个事务未提交的数据 可能产生脏读
读已提交: 一个事务须等待其他事务提交后才能读取,避免了脏读,但是可能产生不可重复读
可重复读:一个事务在进行读取操作的时候,其他事务不能进行修改操作,避免了不可重复读,但是还可能存在幻读的情况
串行化: 隔离级别最高,事务串行化执行,避免以上三种隔离级别并发操作出现的问题,但是资源损耗大
脏读: 一个事务读取到了其他事务回滚前的数据(称为脏数据)
不可重复读: 一个事务在同一查询条件下不同时间查询到了不一样的数据,因为其他事务修改了这条数据。 例如在11:30分读取到了100分的纪录,当12:00再次读取时读取到了50分的数据,期间出现了事务的修改操作。
幻读: 一个事务在同一查询条件不同时间范围内查询到了不同的数据条目
这是因为其他事务在这期间执行了insert操作,假如当前table存有10条数据,之后的查询中出现了11条数据,前后查询结果不一致,这就是幻读。
关于幻读和不可重复读 前者针对insert,后者针对于delete和update