• SQL 事务级别 与 支持 图解逻辑记录


    前言

    事务这个东西基本都了解 但是很多人不能将整个逻辑串联起来 可能大部分人就知道ACID 但是事务的知识远远不止ACID 怎么能抗住追问 和 完善自己的知识目录 这个还是不错的 建议认真看完

    SQL 标准事务隔离级别

    SQL 标准中规定了 4 种事务隔离级别,在多事务并发时可以避免一些事务并发问题。

    read uncommitted

    read uncommitted(读未提交):简称 RU 级别,这个隔离级别是不允许脏写发生的,也就是说不允许两个事务在没提交的情况下去更新同一行数据,却允许读取未提交的数据。但是依旧可能发生脏读、不可重复读、幻读等问题。所以一般情况下都不会使用这个级别。

    read committed

    read committed(读已提交):简称 RC 级别,这个隔离级别是不允许脏写和脏读的,也就是说不允许读取和修改事务未提交的值。但是依旧可能发生不可重复读和幻读等问题,因为在事务期间内别的事务修改数据并提交后,还是会被这个事务读取到。

    repeatable read

    repeatable read(可重复读):简称 RR 级别,这个隔离级别是不允许脏写、脏读和不可重复读发生的,也就是说不会在事务内读到被其它事务修改的值,哪怕别的事务已提交。但是依旧有可能发生幻读问题,因为它不保证别的事务新增或删除数据后,这个事务不被影响。

    serializable

    serializable(串行化):简称 S 级别,这个隔离级别可以避免所有多事务问题,因为这个隔离级别下,所有的事务都将串行化,不会并发执行事务。但是这将会严重降低数据库的性能,所以这个级别一般也不会用。

    综上,一般用的最多的就是 RC、RR 级别。并且在 MySQL 中 RR 级别已经可以避免幻读的问题了,所以 MySQL 默认的隔离级别就是 RR 级别。

    修改事务隔离级别

    MySQL 中默认的 RR 级别,可以避免多事务的问题,所以一般不用修改,但在某些业务场景下也许需要修改隔离级别。

    MySQL 命令行

    使用命令:SET [GLOBAL|SESSION] TRANSACTION ISOLATION LEVEL {level 级别};

    leve 级别:READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SERIALIZABLE

    Spring 事务注解

    也可以使用 Spring 的注解 @Transactional 来修改事务级别, @Transactio

  • 相关阅读:
    [附源码]SSM计算机毕业设计血库管理系统JAVA
    免费小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务
    python_函数
    详解java的日期类
    如何快速从Oracle迁移到Mysql?
    win11蓝屏DRIVER_VERIFIER_DMA_VIOLATION?
    如何通过Java导出带格式的 Excel 数据到 Word 表格
    A01、分布式文件系统
    【剑指offer&牛客101】中那些高频笔试,面试题——链表篇
    有意思的开源项目分享(持续更新,勤劳的搬运工,只放一些我感兴趣的)
  • 原文地址:https://blog.csdn.net/Huangjiazhen711/article/details/128016476