Mysql事务学习(10.26)
目的
要么都执行,要么都不执行
ACID特点
-
原子性:要么都执行,要么都不执行
-
一致性:数据一致
-
隔离性:不同事务操作相同数据在不同数据空间
-
持久性:保存到数据库,不回滚
事务并发问题
-
脏读:读到其他事务未提交的数据(不确定是否会回滚)
-
不可重复读(其他事务修改提交,导致读出不同数据)
-
幻读(事务对全表进行修改,同时另一事务对表进行修改,导致前一事务发现没有存在没有被自己修改的数据)
-
丢失更新(后一事务的修改覆盖前一事物的修改)
前三点很重要,下面不同的隔离级别解决不同的问题
事务隔离级别
-
读取尚未提交的数据
-
提交读(解决脏读)
-
可重复读(解决脏读和不可重复读)
-
串行化(解决脏读、不可重复读和幻读)
作用范围
-
全局级:对所有会话有效
-
会话级:只对当前会话有效