什么叫事务
事务就是一组sql组成的操作单元,要么操作全部成功,要么全部失败。
ACID属性
原子性(atomicity)
一个事物必须被视为一个不可分割的最小工作单元,整个事务要么全部成功,要么全部失败回滚,对一个事物来说,不可能只执行其中的一部分操作。
一致性(consistency)
数据库总是从一个一致的状态转换到另外一个一致的状态。比如总共两个update,在第一个update后,系统崩溃了,也不会对数据有影响,因为事务没提交。
隔离性(isolation)
一个事务所做的修改在最终提交以前,对其他事务是不可见。
持久性(durability)
一旦事务提交,则所做的修改就会永久保存到数据库中。
事务隔离级别
并发事务带来的问题:
- 脏读
事务可以读取未提交的数据,叫脏读。 - 不可重复读
一个事务开始时,只能读取已经提交事务所做的修改。换句话说,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。执行两次同样的查询,可能会得到不一样的结果。 - 幻读
是指当某个事务读取某个范围内的记录时,另外一个事务在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行。
隔离级别 | 脏读可能性 | 不可重复读可能性 | 幻读可能性 |
---|---|---|---|
read uncommitted | Yes | Yes | No |
read committed | No | Yes | Yes |
repeatable read | No | No | Yes |
serializable | No | No | No |
原文地址:http://blog.51cto.com/4436396/2074002
时间: 2024-10-09 22:58:01