zoukankan      html  css  js  c++  java
  • MySQL 事物机制

    前言:事物:一组原子性的SQL查询,或多个SQL语句组成了一个独立的单元。要么这一组SQL语句全部执行,要么全部不执行
    (一)事物日志介绍:管理事物机制的日志
    redo日志:记录SQL执行的语句,这些SQL语句还没有同步到磁盘上,没有修改数据。如果数据奔溃,可以通过撤销SQL执行的语句来进行还原。但是,如果已经同步到磁盘上的SQL语句而言,就只能使用undo来回滚之前的数据了
    undo日志:记录没有执行SQL的样子,也就是记录修改数据之前的数据记录下来
    (二)ACID测试:用来判断存储引擎是否满足事物机制
    A:automicity, 原子性,整个事物中的所有操作要么全部成功提交,要么全部失败回滚
    C:consistency , 一致性,数据库总是从一个一致性状态转化为另一个一致性状态
    I:isolation, 隔离性,事物不会相互影响,一个事物所作出的操作在提交之前,是不能为其他事物所见,隔离有多种级别,主要是为了并发
    D:durability , 持久性,事物一旦提交,其所作的修改会保存在数据库中,不能丢失

    • 事物操作演示1
    1:show global variables where Variable_name like '%commit%';  查看全局变量

    2:set session autocommit = OFF; 修改事务日志自动提交功能

    3:show variables where Variable_name like ‘%commit%’; 查看当前会话的全局变量

    4:start transaction; 启用事务日志机制

    5:在表中插入数据,但是不提交(commit)

    6:rollback; 事务回滚
    • 事物操作演示2
    1:insert into home values (4, 'yhy1', 99); 添加一条记录

    2:savepoint first; 设置一个保存点

    3:update home set name = 'yhy2' where id = 4; 跟新一条记录

    4:savepoint second; 设置第二个保持点

    5:insert into home values (5, 'yhy3', 199); 再添加一条记录

    6:rollback to second; 回滚到第二个保存点

    7:rollback to first; 回顾到第一个保持点

    8:commit; 提交数据
  • 相关阅读:
    平时十二测
    无题十四
    暑假第十测
    无题十三
    noip错题集
    无题十二
    BZOJ整理
    志愿者招募
    修车
    任务安排
  • 原文地址:https://www.cnblogs.com/liu1026/p/7467691.html
Copyright © 2011-2022 走看看