zoukankan      html  css  js  c++  java
  • 事务

    202056

    12:46

    1、事务特点

    Acid

    原子性:一个事务不可再分割,要么都执行或者都不执行

    一致性:一个事务会使数据从一种一致状态到另一种一致状态

    隔离性:一个事务的执行不受其他事务的干扰(需要特别的隔离等级)

    持久性:一个事务的执行完成后其影响是永久的

    事务的支持需要存储引擎innodb的支持,

    2、事物的使用步骤

    • 事务的创建
      • 隐私事务:默认一条语句就是一个事务,
      • 显示事务:具有明显的开启和关闭标志

        显示事务的开启需要关闭系统自动选择为事务的功能,

        #开启事务

    set autocommit = 0;
    
    start transaction;
    
    UPDATE bank SET money = 500 WHERE id=1;
    
    UPDATE bank SET money = 1500 WHERE id=2;
    
    commit;
    • delete和truncate区别
      • delete可回滚
    set autocommit=0;
    
    start transaction;
    
    DELETE FROM bank;
    
    rollback ;
    
    SELECT * FROM bank;
    • truncate不可回滚

    3、事物的并发问题

    • 脏读

      对于同一个数据有两个事务T1、T2同时操作,当T1更改后未提交,T2就读到了数据,但此时T1回滚了操作,T2读取的数据就是临时的无效的

    • 不可重复读

      对于同一个数据有两个事务T1、T2同时操作,T1读取了一个字段,T2更新了数据,T1再读数据就不一样了

    • 幻读

      对于同一个数据有两个事务T1、T2同时操作,T1读取了字段,T2插入了新的字段,T1再操作数据就多了几行。

    4、事物的隔离级别

    MySQL中默认的隔离级别:repeatable read

    Oracle中默认的隔离级别;read committed

    设置隔离级别常用的SQL语句

    select @@transaction_isolation;#查看当前的隔离等级
    set session transaction isolation level read committed;#设置当前窗口隔离等级
    set global transaction isolation level read committed; #设置系统的隔离等级

       

      

  • 相关阅读:
    [CF846E]Chemistry in Berland题解
    [CF846D]Monitor题解
    [CF846B]Math Show题解
    [CF846A]Curriculum Vitae题解
    斜率优化 学习笔记
    【CF115E】Linear Kingdom Races 题解(线段树优化DP)
    【洛谷P3802】小魔女帕琪 题解(概率期望)
    7月13日考试 题解(DFS序+期望+线段树优化建图)
    【BZOJ1426】收集邮票 题解 (期望)
    【HNOI2010】弹飞绵羊 题解(分块)
  • 原文地址:https://www.cnblogs.com/yuknight/p/12855564.html
Copyright © 2011-2022 走看看