• mysql-隔离级别


    1. ACID四大特性

    1)原子性 事务是一个整体,不可拆分。要么整体成功,要么整体失败。
    2)一致性 事务前后,数据库的状态满足所有的完整性约束。【状态守恒】
    3)隔离性 多个并发事务相互独立、相互隔离、互不影响。【并发控制】
    4)持久性 事务完成后, 结果需要持久化。【磁盘永久存储】
    
    • 1
    • 2
    • 3
    • 4

    2. 隔离级别

    读未提交【非常不严谨的隔离级别、生产上禁止使用】
    读已提交【Oracle 数据库默认的隔离级别】
    可重复读【MySQL数据库默认的隔离级别】
    串行化 【排队执行、读写互斥。最安全、性能最差】
    
    • 1
    • 2
    • 3
    • 4

    3. MySQL 查看隔离级别

    3.1 查询当前的会话

     select @@tx_isolation;
    
    • 1

    3.2 查询全局的事务

    select @@global.tx_isolation;  
    
    
    • 1
    • 2

    MySQL 读未提交:
    一个事务读取到了另一个事务没有提交的数据

    MySQL 读已提交
    一个事务只能读取另一个事务已经提交的数据【无法解决不可重复读的问题】

    1) 设置隔离级别
    SET SESSION TRANSACTION ISOLATION LEVEL READ committed;
    SET SESSION TRANSACTION ISOLATION LEVEL READ committed;
    
    
    2)查询隔离级别
    mysql> select @@global.tx_isolation;
    +-----------------------+
    | @@global.tx_isolation |
    +-----------------------+
    | READ-COMMITTED        |
    +-----------------------+
    1 row in set (0.00 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    MySQL 可重复读:
    在同一个事务中、多个相同的查询返回相同的结果

    1)设置隔离级别
    mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;
    mysql> SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
    
    
    2)查看隔离级别
    
    mysql> select @@global.tx_isolation;
    +-----------------------+
    | @@global.tx_isolation |
    +-----------------------+
    | REPEATABLE-READ       |
    +-----------------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    MySQL 串行化:
    事务依次排队执行。性能非常差

    1)设置隔离级别
    SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE; 
    SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    
    2)查询隔离级别
    mysql> select @@global.tx_isolation;
    +-----------------------+
    | @@global.tx_isolation |
    +-----------------------+
    | SERIALIZABLE          |
    +-----------------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    睡眠与健康:你的睡姿可能不对喔~
    环状序列(逐行解析)(保姆式解析)(算法竞赛入门经典二)
    go 语言函数绑定方法
    Leetcoder Day32| 贪心算法part05
    OpenMesh 获取一个顶点的邻接半边
    css怎样设置文本格式两端对齐
    【洛谷】P1828 [USACO3.2] 香甜的黄油 Sweet Butter (最短路)
    Java并发面试题:(八)AQS原理和Semaphore、CountdownLatch、CyclicBarrier类
    postman做接口自动化测试
    电容笔买什么牌子好?2022电容笔品牌排行榜
  • 原文地址:https://blog.csdn.net/weixin_39735909/article/details/133635807