mysql事物
简介
事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。
事物的四大特性(ACID)
- 原子性
事务是最小的执行单位,不允许分割。事务的原子性确保动作 - 一致性
执行事务前后,数据保持一致,一致性是目的,原子性,隔离性,持久性是手段。 - 隔离性
并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; - 持久性
一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
事物的四大隔离级别
隔离级别 | 脏读 | 不可重复读 | 幻影读 |
---|---|---|---|
READ- UNCOMMITTED(读未提交) | √ | √ | √ |
READ- COMMITTED(读提交) | × | √ | √ |
REPEATABLE-READ(可重复读) | × | × | √ |
SERIALIZABLE(串行化) | × | × | × |
名词解释
- 脏读
一个事物读取到了另一个事物中尚未提交的数据。 - 不可重复读
一个事物中两次读取的数据内容不一致,要求的是一个事物中多次读取时数据是一致的,这是事物update时引发的问题。 - 幻读
一个事物中两次读取的数据的数量不一致,要求在一个事物中多次读取的数据的数量是一致的,这是insert或delete时引发的问题。
XFS