事务的四个特征acid
原子性(atomicity)
事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败
一致性(consistency)
事务应该与mysql的约束或者与我们业务的约束保持一致性
隔离性(isolation)
在并发环境中,并发的事务是互相隔离的,一个事务的执行不能被其它事务干扰,不同的事务并发操作相同的数据时,每个事务都有各自完整的数据空间
持久性(duration),
事务的持久性是指事务一旦提交后,数据库中的数据必须被永久的保存下来。即使服务器系统崩溃或服务器宕机等故障。只要数据库重新启动,那么一定能够将其恢复到事务成功结束后的状态
事务四个隔离级别
读未提交(read uncommitted): 一个事务还没有提交时,它做的变更就能被别的事务看到。
读提交(read committed): 一个事物提交之后,它做的变更才会被其他事务看到。
可重复读(repeatable read): 事务A读取X数据后,当事务B对该X更改且提交后,事务A读取的X还是修改之前的X
串行化(serializable): 对于同一行记录,写会加“写锁”,读会加“读锁”,当出现锁冲突时,后访问的事务需要等前一个事务执行完成,才能继续执行。
脏读: 一个事务读到另一个事务未提交的更新数据。
不可重复读: 事务A读取X数据后,当事务B对该X更改且提交后,事务A读取的X是发生修改后的X,导致两次读取的X不一致
幻读: 事务A一开始读取到了1条数据,当事务B插入1条新数据后,事务A再次读取,发现数据变成了2条,比原先多出来了1条
mysql事务
最新推荐文章于 2025-08-01 07:20:07 发布