事务的特性:
原子性(Atomicity):事务中的所有操作要么都成功,要么全部回滚;
一致性(Consistency):执行事务前和执行事务后数据要保持一致,即数据一致性;
隔离型(Isolation):并发执行的事务间应该是互不影响的,对并发执行事务A和事务B,事务A感觉事务B是在其执行前结束或者执行后才开始的,当然这是最理想的,但考虑性能不能这么干;引出事务的隔离级别
持久性(Durability):事务一旦执行完毕,数据状态是持久不变的。
事务的隔离级别4种:
1.读未提交:事务B读数据时,事务A可以修改数据,事务A回滚后,事务B读的是错误数据;
2.读已提交(又叫不可重复读):事务B读数据时,事务A可以修改数据,事务A提交后事务B再次读取造成读取的数据不一致;
3.可重复读:事务B一旦开始读,事务A就不能对数据进行操作,只有事务B结束,事务A才能进行操作;事务A可以增加数据行数,造成数据条数不一致,造成幻读;
4.串行化:事务A执行完后,事务B才能执行;
备注:前3种隔离级别是事务并行引起的。mysql的默认事务隔离级别是:可重复读
浙公网安备 33010602011771号