1、原子性(Atomicty)
原子性是指事务是一个不可分割的工作单位,事务种的操作要么都发生,
要么都不发生。
2、一致性(Consistency)
事务前后数据的完整性必须保持一致。
3、隔离性(Isolation)
事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其
他用户的事务所干扰,多个并发事务之间数据要相互隔离。
4、持久性(Durability)‘
持久性是指一个事务是一旦被提交,它对数据库中的数据的改变。
就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
如果不考虑隔离性,事务存在3中并发访问问题。
1、脏读:B事务读取到了A事务尚未提交的数据
---- 要求B事务要读取A事务提交的数据
2、不可重复读:一个时间中 两次读取的数据的内容不一致
---- 要求的是一个事务中多次读取时数据是一直的。 --- update
3、幻读/虚读:一个事务中 连词读取的数据的数量不一致
---- 要求在一个事务多次读取的数据的数量是一致的。
---- insert delete
1、read uncommitted:读取尚未提交的数据:
哪个问题都不能解决
2、read committed:读取已经提交的数据:
可以解决脏读
3、repeatable read:重读读取:
可以解决脏读和不可重读
4、serializable:串行化:
可以解决 脏读 不可重复度 和 虚度
start transaction; --开启事务
rollback; --回滚
commit; -- 提交
set session transaction isolation level read committed;
--- 设置会话事务的隔离级别
隔离级别的性能:
read uncommitted > read committed > repeatable read > serializable
原文:https://www.cnblogs.com/guanzhigu/p/10372183.html