Mysql事务
事务的四个特性
1.原子性
不可分割的最小工作单位
2.一致性
若事务完成,则一起完成,若没有完成,之前执行的步骤一同回滚
3.隔离性
事务在执行时不能被干扰,即事务执行时与其他事务具有时隔离的
4.持久性
事务一旦执行成功,对数据库中数据的修改时永久性的,后续的其他操作或机器故障不能对其产生任何影响
事务的四种隔离级别
-
read uncommitted(读未提交数据):允许事务读取未被其他事务提交的变更。(脏读、不可重复读和幻读的问题都会出现)。
-
read committed(读已提交数据):只允许事务读取已经被其他事务提交的变更。(可以避免脏读,但不可重复读和幻读的问题仍然可能出现)
-
repeatable read(可重复读):确保事务可以多次从一个字段中读取相同的值,在这个事务持续期间,禁止其他事务对这个字段进行更新(update)。(可以避免脏读和不可重复读,但幻读仍然存在)
-
serializable(串行化):确保事务可以从一个表中读取相同的行,在这个事务持续期间,禁止其他事务对该表执行插入、更新和删除操作,所有并发问题都可避免,但性能十分低下(因为你不完成就都不可以弄,效率太低)
默认事务隔离级别repeatable read。