zoukankan      html  css  js  c++  java
  • mysql中的事务

    一、事务的作用

      事务是指一系列将要发生的连续的操作。

      事务安全是为了保证一系列操作的结果保持同步,保证数据的完整性。

      开启事务后,操作的结果会先保存到事务日志中,等操作完成提交事务后,才会修改表中的数据。

      注意:只有innodb存储引擎和bdb存储引擎才支持事务安全。

    二、事务使用

    start transaction;    -- 开启事务
    
    -- SQL语句1...
    
    savepoint sp1;        -- 设置回滚点
    
    -- SQL语句2...
    
    -- 如果操作失败 可以用rollback退回到回滚点
    
    rollback to sp1;
    
    -- SQL语句3...
    
    -- 操作完成后,用commit提交事务
    commit;

    三、自动事务提交

      事务是否自动提交由系统变量autocommit来控制,1为开启,0为关闭。默认是开启状态。

    -- 设置自动事务提交
    set autocommit := 0;  -- mysql中 = 一般用于比较,  := 才是赋值

    四、事务的特性--ACID
      A: atomic, 原子性, 整个事务的操作是一个整体,不可分割,要么全部成功,要么全部失败。

      C: consistency, 一致性,事务操作前后,数据表中的数据没有变化。

      I: isolation, 隔离性, 不同的事务操作是相互隔离,不受影响的。

      D: durability, 持久性, 数据一旦提交, 就不会再改变。

      锁机制:innodb默认是行锁, 但当事务操作的过程中,没有使用到索引,那么就会自动升级为表锁,全表检索数据。

  • 相关阅读:
    CentOS创建vsftp进行读写操作的简单方法
    [知乎]经典古诗词
    js仿手机端九宫格登录功能
    Android Studio 小技巧合集
    Android MVPR 架构模式
    剖析OkHttp缓存机制
    Java Observable 模式
    使用Rxjava缓存请求
    ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
    ThreadPoolExecutor使用介绍
  • 原文地址:https://www.cnblogs.com/pengyin/p/6388110.html
Copyright © 2011-2022 走看看