• 【数据库】事务


    概念:事务是指一个用户定义的数据库操作序列,这个事务要么全部执行要不不执行。

    事务特性:ACID

    原子性、一致性、隔离性,持久性。

     原子性(Atomicity)

    是不可分割的最小操作单位,要么同时成功,要么同时失败


     一致性(Consistency):

    保证数据的状态操作前和操作后保持一致


     隔离性(Isolation):

    多个事务同时操作相同数据库的同一个数据时,一个事务的执行不受另外一个事务的干扰
     

     持久性(Durability):

    当事务提交或回滚后,数据库会持久化的保存数据

     事务操作步骤

        1. 开启事务
        2. 编写事务逻辑操作单元
        3. 提交事务或回滚事务

     事务分类:
        * 隐式事务:没有明显的开启和结束事务的标志
            * insert、update、delete语句本身就是一个事务
        * 显式事务:具有明显的开启和结束事务的标志
            1. 取消自动提交事务:set autocommit=0;
            2. 开启事务:start transaction;
            3. 提交或回滚事务:
                - commit;
                - rollback;


    事务的隔离级别(面试常考):

        * 事务并发问题是如何产生的?
            - 当多个事务同时操作同一个数据库的相同数据时
        * 事务并发问题
            - 脏读:一个事务读取到了另外一个事务未提交的数据
            - 不可重复读:同一个事务中,多次读取到的数据不一致
            - 幻读:一个事务读取数据时,另外一个事务进行更新,导致第一个事务读取到了没有更新的数据
        * 处理事务并发问题,设置事务隔离级别
            - READ UNCOMMITTED
            - READ COMMITTED:可以避免脏读
            - REPEATABLE READ:可以避免脏读、不可重复读和一部分幻读
            - SERIALIZABLE:可以避免脏读、不可重复读和幻读
        * 注意:隔离级别从小到大安全性越来越高,但是效率越来越低
        * 设置隔离级别
            - set session|global  transaction isolation level 隔离级别名;
        * 查看隔离级别
            - select @@tx_isolation;

  • 相关阅读:
    【kafka】kafka单节点/集群搭建
    YOLOv5、YOLOv8改进:Swin Transformer-V2
    Android 使用motion 动画如何使用
    Linux常用命令之top监测
    基于Websocket的局域网聊天系统
    openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述
    gammatone 滤波器详解及其MATLAB代码实现
    从入门到精通:Go 实现基于 Token 的登录流程深度指南
    R语言logistic回归的细节解读
    kaggle新赛:SenNet 3D肾脏分割大赛(3D语义分割)
  • 原文地址:https://blog.csdn.net/akisi/article/details/125506919