MySQL事务回顾

事务

一个session中所进行的所有操作,要么全部成功,要么全部失败,作为单个逻辑工作单位执行的一系列操作,会满足四大特性:
原子性(Atomicity):事务作为一个整体被执行 ,要么全部执行,要么全部不执行
一致性(Consistency):保证数据库状态从一个一致状态转变为另一个一致状态
隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行
持久性(Durability):一个事务一旦提交,对数据库的修改应该永久保存

事务并发的问题

丢失更新: 一个事务的更新覆盖了另外一个事务的更新
脏读:一个事务读取了另一个事务未提交的数据
不可重复读:不可重复读的重点是修改,同样条件下两次读取结果不同,也就是说,被读取的数据可以被其它事务修改
幻读:幻读的重点在于新增或者删除,同样条件下两次读出来的记录数不一样

事务的隔离级别有哪几种

隔离级别决定了一个session中的事务可能对另一个session中的事务的影响。
ANSI标准定义了4个隔离级别,MySQL的InnoDB都支持
MySQL默认的隔离级别是可重复读(REPEATABLE READ)
读未提交(READ UNCOMMITTED):最低级别的隔离,通常又称为dirty read,它允许一个事务读取另一个事务还没 commit 的数据,这样可能会提高性能,但是会导致脏读问题
读已提交(READ COMMITTED):在一个事务中只允许对其它事务已经 commit 的记录可见,该隔离级别不能避免不可重复读问题
可重复读(REPEATABLE READ):在一个事务开始后,其他事务对数据库的修改在本事务中不可见,直到本事务 commit 或 rollback。但是,其他事务的 insert/delete 操作对该事务是可见的,也就是说,该隔离级别并不能避免幻读问题。在一个事务中重复 select 的结果一样,除非本事务中 update 数据库
序列化(SERIALIZABLE):最高级别的隔离,只允许事务串行执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值