码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据库的隔离级别


    文章目录

    • 多事务并发
      • 脏读
      • 不可重复读
      • 幻读
    • 隔离级别
      • 简介
      • 类别
      • 查看数据库的隔离级别
      • 编辑数据库的隔离级别

    专栏目录请点击

    多事务并发

    脏读

    1. 事务1更新了记录,但是还没有提交,此时,事务2读取了更新后的记录,然后事务1又进行了回滚。目前,事务2读取的数据是无效的数据

    不可重复读

    • 事务1读取了记录,事务2 更新了这条记录,并进行了提交,当事务1再次读取的这条记录的时候,就会发现值不相同了

    幻读

    • 事务1读取了一个字段,事务2在这个表中插入了几行,当事务1再次读取当前表的时候就会发现表的行数不同了

    为了解决上面的问题,数据库就必须拥有隔离并发运行的能力,来避免各种问题

    隔离级别

    简介

    1. 一个事务与其他事务的隔离程度称为隔离级别
    2. 一般隔离性越高,数据的一致性就越好,但并发性就越弱

    类别

    隔离级别简介
    READ UNCIMMITTED(未提交读)事务中的修改,即使没有提交,其他事务也可以看得到,比如脏读问题,不可重复读和幻读都可出现。如无必要,不要随便使用
    READ COMMITTED(提交读)大多数数据库系统的默认隔离级别是READ COMMITTED,这种隔离级别就是一个事务的开始,只能看到已经完成的事务的结果,正在执行的,是无法被其他事务看到的。可以解决脏读问题,但不能解决其他两个问题
    REPEATABLE READ(可重复读)确保事务可以多次从一个字段中读取相同的值,在这个事务持续的期间,禁止其他事务对这个字段进行更新,可以避免脏读和不可重复读问题,但是不能解决幻读问题
    SERIALIZABLE(可串行化)SERIALIZABLE是最高的隔离级别,它通过强制事务串行执行(注意是串行),避免了前面的幻读情况,由于他大量加上锁,导致大量的请求超时,因此性能会比较底下,再特别需要数据一致性且并发量不需要那么大的时候才可能考虑这个隔离级别

    查看数据库的隔离级别

    语法一

    查询系统变量

    SHOW VARIABLES LIKE 'tx_isolation';
    SHOW VARIABLES LIKE 'transaction_isolation';
    
    • 1
    • 2

    语法二

    访问系统变量

    SELECT @@tx_isolation;
    SELECT @@transaction_isolation;
    
    • 1
    • 2

    编辑数据库的隔离级别

    设置当前 mySQL的隔离级别

    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    
    • 1

    设置全局的隔离级别

    SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
    
    • 1
  • 相关阅读:
    微信小程序---分包加载
    Session,Cookie,Headers,Token,公参都是些啥
    helm2 与 helm3
    桩企、车企、SaaS平台三路进击充电桩
    @Bean, @Component, @Configuration简析
    B站排行,如何高效查看B站榜单排行数据?
    docker 构建python Dockerfile
    【华为OD机试python】报数游戏【2023 B卷|100分】
    短视频发布的黄金时间,四点两天,找准发布时机才能事半功倍
    deepstream中Gst-nvmsgconv和Gst-nvmsgbroker两个插件的作用和关系
  • 原文地址:https://blog.csdn.net/youhebuke225/article/details/126864740
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号