zoukankan      html  css  js  c++  java
  • 第六章 事务与并发控制

    1、前言
    -》当进行一个增删改事务时,系统会默认加锁,查询时会出现执行等待,commit或rollback之后等待结束

    2、事务
    -》理解:保证一个多操作的事情全部成功执行完成,否则回滚到未任何操作之前的状态
    只有数据改变(增加、修改、删除)时才会引发事务,查询不会引发事务
    -》分类:
    ·显式事务:需要手动控制
    ·隐式事务:不需要手动操作,每条语句都是事务,mssqlserver默认采用此方式
    -》满足事务的四个原则:原子性、一致性、隔离性、持久性
    -》语法格式: bengin tran /*定义事务的开始*/
    commit tran /*提交事务*/
    rollback tran /*回滚事务,出错后执行*/
    save tran /*在事务内设置保存点*/
    例: begin try
    begin tran
    sql语句[块]
    commit tran
    end try
    begin catch
    rollback tran
    end catch

    3、并发控制
    -》解释:当多个用户同时更新行时,用于保护数据库完整性的各种技术。
    -》目的:保证一个用户的工作不会对另一个用户的工作产生不合理的影响。
    -》并发带来的问题
    --丢失修改
    --脏读:一个事务访问并修改这个数据,但并未提交到数据库;另一个事务使用了这个还没有提交的数据(脏数据)。
    --不可重复读:第一个事务多次读同一数据,第二个事务在第一事务读数据之间进行了修改,那么第一次事务多次读到数据可能是不一样。
    --幻读:与不可重复读相似。

    4、锁
    -》解释:解决并发带来的问题,使并发的事务串行化,使各事务都按照某种次序来进行,从而消除相互干扰的一种机制。

         详细解释:https://blog.csdn.net/u013444177/article/details/51760860

    不知跬步,无以至千里;不积小流,无以成江海。菜鸟的梦想是雄鹰。
  • 相关阅读:
    PHP:面向对象学习笔记,重点模拟Mixin(掺入)
    Mybatis Plus 更新
    Mybatis Plus 自定义SQL和分页插件
    Mybatis Plus 查询方法
    Mybatis Plus 快速入门
    Ribbon 负载均衡服务调用
    三个注册中心异同点
    Consul 服务注册与发现
    Spring Boot 集成 Swagger
    Eureka 服务注册与发现
  • 原文地址:https://www.cnblogs.com/ysq2018China/p/9147749.html
Copyright © 2011-2022 走看看