MySQL事务简介

  • 事务定义:
    一个业务包含多个操作,多个操作要么全部成功,要么全部不成功。

  • 事务特性:ACID

    • 原子性(Atomicity):组成事务处理的语句形成了一个逻辑单元,要么全都执行,要么全都不执行 。
    • 一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态 。
    • 隔离性(Isolcation):由并发事务所作的修改必须与任何其它并发事务所作的修改隔离
    • 持续性(Durability):事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持 。
  • 事务的隔离性,产生相应的隔离问题

    • 脏读:一个事务读到了另一个事务,没有提交的数据。
    • 不可重复读:一个事务读到了另一个事务,已经提交的数据(数据的更新update)。
    • 幻读(虚读):一个事务读到了另一个事务,已经提交的数据(数据的录入insert)。
  • 数据库的隔离级别

    • 为了解决隔离性产生的问题

    • 分类

      • 读未提交(read uncommitted) , 所有问题
      • 读已提交(read committed) , 解决了脏读,没有解决其他问题。
      • 可重复读(repeatable read) , 解决了脏读 和 “不可重复读” , 没有解决幻读 (mysql直接不可重复读,将“幻读”解决)
      • 串行化(serializable) , 同步synchronized,相当于单线程,单事务,没有并发问题。 -
        这里写图片描述
    • 对比

      • 性能:read uncommitted > read committed > repeatable read > serializable
      • 安全:read uncommitted < read committed < repeatable read < serializable

mysql默认隔离级别:repeatable read

  • mysql事务操作sql语句
    • 开启事务 :mysql > start transaction;

    • 提交事务 :mysql > commit;

    • 回滚事务 :mysql > rollback;

    • 查询数据库当前隔离界别:mysql > select @@tx_isolation;

    • 修改数据库当前隔离界别:mysql > set session transaction isolation level (read uncommitted | read committed | repeatable read | serializable)

Coding Diary

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值