zoukankan      html  css  js  c++  java
  • SQL的事务

      1、事务是什么

      事务是对数据库执行的一个操作单位,是对数据库所做的一个或多个修改,是必须完整执行的SQL语句块,它是由数据操作语言(DML)完成的;在一个事务可以是一个或多个DML语句,在事务处理中,确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性。

      2、事务的本质特征是什么

    • 所有的事务都有开始和结束;
    • 事务可以被保存或撤销;
    • 如果事务在中途失败,那么事务中的任何部分都不会被记录到数据库

      使用事务进行操作的实质是:事务会对临时存储空间进行操作,因为数据库服务器需要记录语句执行前的所有变化,以便在需要ROLLBACK的时候进行撤销。

      3、如何控制事务

      当一个事务被执行成功完成时,虽然从输出结果来看目标表已经被修改了,但实际上目标表并不是立即被修改的,还需要通过事务控制命令来最终认可这个事务,把事务所做的修改要么保存到数据库,要么撤销事务所做的修改。控制事务的命令有三个:

    • COMMIT:把事务产生的变化保存到数据库
    • ROLLBACK:撤销已经被执行的事务所产生的变化
    • SAVEPOINT:用于把事务划分为组,创建用于回退到事务过程中特定的逻辑点,支持回退部分事务

      事务控制命令只与DML命令INSERT、UPDATE和DELETE配和使用,尽管事务处理中可以使用SELECT、CREATE、DROP、TRUNCATE语句,但是回退SELECT语句没有必要,而CREATE和DROP语句是不能撤销的,

      当事务处理完后,事务信息被保存在数据库里的指定区域或临时回退区域,所有的修改都被保存到这个临时回退区域,直到事务控制命令出现,此时所做的修改要么被保存到数据库,要么被放弃,然后临时回退区域被清空。下面通过一幅来理解,更直观:

      4、事务控制与数据库性能

      大规模的批处理会导致临时存储的回退信息不断膨胀,直到出现COMMIT或ROLLBACK命令;如果一直没有出现COMMIT或者ROLLBACK命令,那么临时存储区域里的回退信息就不会不断增长,直到没有剩余空间,导致数据库停止全部进程,直到空间被释放。

      

  • 相关阅读:
    CSS3 object-fit 图像裁剪
    jQuery.extend 使用函数
    ios 不支持iframe 解决方案
    详解HTML5中rel属性的prefetch预加载功能使用
    web页面加载、解析、渲染过程
    TCP的三次握手(建立连接)与 四次挥手(关闭连接)
    html---规范、细节积累-01
    pio设置单元格式
    让一个数字显示指定位数
    linux下获取微秒级精度的时间
  • 原文地址:https://www.cnblogs.com/bien94/p/12913552.html
Copyright © 2011-2022 走看看