• 2.4.4 案例理解4种事务的隔离级别


    2.4.4 通过案例理解4种事务的隔离级别

    MySQL数据库管理·实战案例7

    需求

    1 分析当前数据库的事务隔离级别

    2 对四种事务隔离级别进行切换,并对比其效果,最终使用哪种隔离级别。

    # 设置隔离级别
    mysql root@localhost:(none)> set session tx_isolation='READ-UNCOMMITTED';
    Query OK, 0 rows affected
    Time: 0.001s
    # 查看隔离级别
    mysql root@localhost:(none)> select @@tx_isolation;
    +------------------+
    | @@tx_isolation   |
    +------------------+
    | READ-UNCOMMITTED |
    +------------------+
    
    
    

    读未提交 Read uncommited

    两个事务

    A事务进行写入,未提交

    B事务,此时就可以读到A写入的数据(脏数据)

    当A进行回滚操作后,B此时也读不到

    313194968

    318466015

    318511453

    318552843

    读已提交

    两个事务,

    只有当B事务写入,并提交后,

    A事务才能读到B插入的新数据

    318719828

    318761218

    可重复读

    两个事务,

    B事务进行了写入,并提交,A事务此时仍旧是读到之前的数据,

    只有A事务也提交或退出后,才可以读到B插入的新数据。

    319016015

    319030281

    在左边的事务里面永远都只能看到一条数据

    在左边提交本次会话后才可以,看到右边新增的数据。

    238a0686-4d5e-493c-8480-059b63ee6940

    串行化

    两个事务,

    互相隔离,可以并发读,但是不能读写。

    bbd35105-df53-491e-be4c-c9393b2a4935

    319184640

    左边锁了

    串行话,会产生锁。写没有完成,不能读

    319259703

    319308406

    两个事务可以并发读,但是不能并发读写

  • 相关阅读:
    零侵入性:循环重试功能
    Service有多个实现类,它怎么知道该注入哪个ServiceImpl类
    消息队列经典
    MyBatisplus
    图片存储服务器上
    Spring Boot 保护敏感配置的 4 种方法
    微服务组件
    Optional 实例
    date s 更改时间后不生效
    java运行时 报错 Error: Could not find or load main class test
  • 原文地址:https://www.cnblogs.com/wenyule/p/13661954.html
Copyright © 2020-2023  润新知