MySQL中的事务

MySQL中的事务

1. 事务的概念

组在数据库中执行的操作,必须要么全部成功执行,要么全部不执行

2. 事务的操作

  • 通过设置事务的提交方式

    // 查看/设置事务的提交方式
    SELECT @@autocommint;
    SET @@autocommint=0;
    //提交事务
    COMMIT;
    //回滚事务
    ROLLBACK;
    
  • 通过开启事务

    //1. 开启事务
    START TRANSACTION 或 BEGIN;
    //2. 提交事务
    COMMIT;
    //3. 回滚事务
    ROLLBACK;
    

3 .事务的四大特性(ACID)

  1. 原子性(atomicity):事务是不可分割的最小单元,要么执行成功,要么全部执行失败。
  2. 一致性(Consistency):事务完成时,必须使所有的数据保持一致状态。
  3. 隔离性(Isolation):数据库的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
  4. 持久性(Durability):事务一旦提交或者回滚,那它对数据库中的数据改变就是永久的。

4. 并发事务引发的问题

  1. 脏读:一个实物读取到另一个实物还没有提交的数据。
  2. 不可重复度:一个事务读取同一条记录,但两次读取数据不同,称之为不可重复度。
  3. 幻读:一个实物按照条件查询数据时,没有对应的数据行,但是在插入时,又发现这行数据已经存在,好像出现可‘幻影’。

5. 事务的隔离级别

  1. Read uncommitted:没有解决并发并发带来的问题。
  2. Read committed:解决了脏读。
  3. Repeatable Read(mysql的默认隔离级别):解决的脏读和不可重复度的问题。
  4. Serializable:解决了三个问题,但是性能有所下降。
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {read committed|read committed|repeatable read|serializable}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值