• mysql事务详解


    一、事务的概念

      事务是一个或多个数据库操作(dml语句),要么全部成功,要么全部回滚,事务是由事务日志来实现的,事务日志有redo log 和undo log

    二、事务的作用

      为了保证复杂数据库操作数据的一致性,尤其是在并发访问数据时,mysql主要用于处理操作量大,复杂的数据

    三、事务的特点

      1.原子性( Atomicity 不可分割性):事务的数据操作,要么同时成功,要么回滚到执行前的状态,向什么都没发生一样

      2.隔离性(Isolation ):多个事务之间是相互隔离,互不影响的,多个事务可以同时对数据库数据进行读写和修改操作,隔离性可以防止多个事务交叉执行导致数据不一致

      3.一致性(Consistency):在事务执行前和执行后,数据的状态保持一致,不会破坏数据库的完整性

      4.持久性(Durability):在事务提交后,数据会被永久刷新到磁盘中,即使出现故障,也不会导致数据消失

    四、事务的语法 

      1.事务的启动语法

         (1)begin

         (2)start transaction  [修饰符]

            -read only  只读

            -read write 读写 默认

            -with consistent snapshot 一致性读

      2.标准的事务语句

       DML语句(insert  delete update)

      3.事务结束

       (1)commit;

       (2)rollback;

    五、事务的自动提交机制

      mysql> select @@autocommit;

      +--------------+
      | @@autocommit |
      +--------------+
      | 1 |
      +--------------+

      在线修改参数:
      (1) 会话级别:
      mysql> set autocommit=0;
      及时生效,只影响当前登录会话
      (2)全局级别:
      mysql> set global autocommit=0;
      断开窗口重连后生效,影响到所有新开的会话
      (3)永久修改(重启生效)
      vim /etc/my.cnf
      autocommit=0

    六、触发隐式提交的几种情况

      1.事务开始后,执行DML语句时,中间插入DDL语句,导致事务提交

       导致提交的非事务语句:

       DDL语句: (ALTER、CREATE 和 DROP)
         DCL语句: (GRANT、REVOKE 和 SET PASSWORD)
         锁定语句:(LOCK TABLES 和 UNLOCK TABLES)
         导致隐式提交的语句示例:
         TRUNCATE TABLE
         LOAD DATA INFILE
         SELECT FOR UPDATE

    七、事务的保存点

      在数据库语句中打几个点,在调用rollback语句时,就可以滚回那个点

      1.语法:

         (1)savepoint [保存点名称]//标记保存点

         (2)rollback  to [保存点名称]//回滚到保存点位置

         (3)release [保存点名称] 删除

  • 相关阅读:
    第二次作业
    第一次作业
    2019春总结作业
    2019春第四次课程设计报告
    2019春第三次课程设计报告
    2019春第二次课程设计报告
    2019春第一次课程设计报告
    第十二周作业
    2019第十一周作业
    2019第十周作业
  • 原文地址:https://www.cnblogs.com/shi-san/p/13698963.html
Copyright © 2020-2023  润新知