MySQL事务管理

MySQL事务管理

  1. DML操作语言

    1.开启事务:start transaction
    2.事务提交commit
    3.事务回滚:rollback
    4.设置回滚点:savepoint xxx
    5.设置回滚:rollback to xxx
    
  2. ACID

    1.Automicoty
    2.consistency
    3.losation
    4.durability
    
  3. 事务的隔离级别

    1.read-uncommitted
    2.read-committed
    3.repeatable-read
    4.serializable
    

    解释:事务A 事务B都在对一个表进行操作

    1.事务A读取了事务B未提交的数据->脏读;

    事务A读取了事务B提交了的数据->事务B提交之前读取一次,提交之后读取一次两次数据不一致->不可重复读;

    事务B插入一条数据 commit提交事务,事务A读取表中数据->事务提交前后表发生变化->幻读

    2.读已提交解决了脏读的问题;

    事务A只能读取事务B已经提交的数据->事务B不提交,事务A只能读取原数据;事务B提交 事务A读取新数据;

    同上任然存在不可重复读和幻读

    3.可重复读解决了不可重复读的问题

    事务B提交事务前后,事务A看到的数据任然是相同的;

    事务B插入数据提交,自己查看数据是最新的状态,事务A任然是原来的状态

    解决不可重复读问题,但是事务A插入与事务B一样的数据 插入失败,原因是事务A展示的表格是一张虚幻的表,并不是真实的表

    4.serializable串行化

    事务B执行事务 未提交,事务A执行事务执行不了,事务Bcommit,事务A的事务开始执行;

    5.区别:repeatable-read 和 serializable 前者锁的是表中的一条数据

    后者锁的是整张表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值