事务的特性
事务要解决的问题:
1)脏读(Dirty Read):
一个事务读取了另一个事务未提交的数据例如当事务A和事务B并发执行时,当事务A更新后,事务B查询读取到A尚未提交的数据,此时事务A回滚,则事务B读到的数据就是无效的脏数据。
(事务B读取了事务A尚未提交的数据)
2)不可重复读(NonRepeatable Read):
一个事务的操作导致另一个事务前后两次读取到不同的数据。例如当事务A和事务B并发执行时,
当事务B查询读取数据后,事务A更新操作更改事务B查询到的数据,
此时事务B再次去读该数据,发现前后两次读的数据不一样。
(事务B读取了事务A已提交的数据)
3) 虚读(Phantom Read)/幻读:
一个事务的操作导致另一个事务前后两次查询的结果数据量不同。例如当事务A和事务B并发执行时,当事务B查询读取数据后,事务A新增或者删除了一条满足事务B查询条件的记录,此时事务B再去查询,发现到查询到查前一次不存在的记录,或者前一次查询的一些记录不见了。(事务B读取了事务A新增加的数据或者读不到事务A删除的数据)