• MySQL 事物


    事务

    1.理解

    完成某个功能的整个过程 称为一个事务。
    同生共死:整个过程中如果出现一点错误,整个事务失败。整个过程都成功 整个事务成功
    如:转账
    
    1000         1000
    张三   --  》  李四
    
    500         1500
    0           2000
    
    
    

    2.特性

    1.原子性 整个事务不可分割
    2. 一致性 整个事务过程中数据保持一致的 
    3. 持久性 数据持久化保存
    4.隔离性:事务与事务之间的隔离关系
    		隔离级别:低 --- 高
    			1. 读未提交 read uncommitted
    				引发问题:脏读  模拟发工资
    				解决:提升隔离级别
    			2. 读已提交 read committed
    				引发问题:不能读重复数据  
    				解决:提升隔离级别
    			3. 可重复读 repeatable read  mysql默认的隔离级别是 repeatable read
    				引发问题:幻读   
    				解决:提升隔离级别
    			4. 串行化 serializable  这个级别比较浪费资源,效率比较低,项目中一般不用
    

    3.实现事务的过程

    3. 实现事务的过程(MySQL数据库默认一个sql语句是一个事务)
      1.查看当前数据库事务的提交方式
        SHOW VARIABLES LIKE 'autocommit';
      2.将事务的提交方式设置手动
         SET autocommit = 0;
      3.手动开启事务
         START TRANSACTION;
      4.编写事务流程
         
      5.如果没有问题,成功,执行提交
         COMMIT;
      6.失败回滚
         rollback;
       
    

    4.隔离性演示

    4-1 读未提交
    引发问题:脏读  模拟发工资
    		解决:提升隔离级别
    		
    		员工再次查询,查看结果
    		
    		
    查看当前会话的隔离机制	select @@tx_isolation;
    修改当前会话的隔离机制 set session transaction isolation level read uncommitted;
    
    

    A窗口

    # A 事务
    select @@tx_isolation;
    set session transaction isolation level read uncommitted;  #把隔离修改为第一级别 读未提交
    set session transaction isolation level read committed;  #把隔离修改为第二级别 读已提交
    
    #设置自动提交为 off
    set autocommit = 0;
    #手动打开事务
    start transaction;
    
    
    #给张三发工资
    update account set money = money + 10000 where name = '张三';
    
    select * from account;
    commit;
    rollback;
    

    B窗口

    #B 事务
    select @@tx_isolation;
    set session transaction isolation level read uncommitted;
    set session transaction isolation level read committed;  #把隔离修改为第二级别 读已提交
    
    #设置自动提交为 off
    set autocommit = 0;
    #手动打开事务
    start transaction;
    
    
    select * from account;
    
    rollback;
    
  • 相关阅读:
    LASSO回归原理和Python代码 | 线性回归 | 交叉验证
    初探投行 | 金融
    癌症疫苗 | Cancer Vaccines
    文献复现 | Machine Learning on Human Muscle Transcriptomic Data for Biomarker Discovery and TissueSpecific Drug Target Identification
    癌症研究必备基础知识 | 生信
    初探RNA | RNA分类 | miRNA | lncRNA
    PubMed文献数据挖掘
    罕见病 | 国内 | 国外 | 市场状态
    医保目录谈判 | 国家带量采购 | DRG/DIP支付方式改革 | 腾笼换鸟
    TCGA数据挖掘基本教程
  • 原文地址:https://www.cnblogs.com/conglingkaishi/p/15215427.html
Copyright © 2020-2023  润新知