读脏
例如我对事件1进行insert操作,insert into demo vaules(1,‘sb’)
此时事件还未提交。这时我进行了查询。select * from demo where name = 'sb'
我得到了(1,'sb')
那么此时我读取了未提交的事务操作的记录,这个就叫做读脏
不可重复读
举例,我首先对一条记录进行了查询,即事件1:select name from demo where id = '1'
我得到了('sb')
那么我此时再运行事件2并且提交,update demo set name = 'dsb' where id = '1'
此时再回到事件1 : select name from demo where id = '1'
('dsb')
即,事务2对事务1进行了影响,导致一个事务内相同的查询,得出了不同的结果
幻读
事务1的事件是,查询该表中有无该商品,如果没有则加一条。商品sku是唯一的,添加重复的报错
那么事件1执行,select * from goods where sku = 'xxx-yyy-27'
结果显示null
那么此时另外一个事件2,insert into goods values('xxx-yyy-27')
这时事件1进行插入,会提示
Error:duplicate key!
也就是说,已提交的事务2对事务1产生了影响,导致事件1查询结果为null,实际的值在他查询过后被插入了,
所以事件1再进行插入的时候便会报错。