并发事务问题
脏读
一个事务读到了另一个事务还没有提交的数据
幻读
按条件查询数据时发现没有数据,但插入时数据存在,就像出现了幻觉
不可重复读
同一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读
解决事务问题的方法
对事务进行隔离
Read Uncommitted 未提交读(不常用)
存在问题:脏读,幻读,不可重复读
Read committed 读已提交
存在问题:幻读,不可重复读 解决:脏读
Repeated Read 可重复读(mysql默认)
存在问题:幻读 解决:脏读,不可重复读
Serializable 串行化(不常用)
所有事务必须串行执行,在上一个事务完成后才能执行下一个事务
解决:脏读 幻读 不可重复读