原子性:指处于同一个事务中的多个操作是不可分割的。
一致性:当数据库成功事务提交时,事务中的所有操作都成功,就说数据库处于一致性状态。
隔离性:同一时刻只允许一个事务操作同一数据,多个事物之间互不干扰
持久性:事务一旦执行提交,就应该被持久化
脏读:读取到了其他事物未提交的数据
幻读:指一个线程中的事务读取到了另外一个线程中提交的 insert 的数据
不可重复读(虚读):指一个线程中的事务读取到了另外一个线程中提交的 update 的数据
*注: √表示会产生,× 表示不会产生
隔离级别 | 脏读(Dirty Read) | 不可重复读(NonRepeatable Read) | 幻读(Phantom Read) |
---|---|---|---|
未提交读(Read uncommitted | √ | √ | √ |
已提交读(Read committed) | × | √ | √ |
可重复读(Repeatable read) | × | × | √ |
可串行化(Serializable) | × | × | × |
级别越高,数据越安全,但性能越低 , mysql 默认事务隔离级别为Repeatable read.