美文网首页
Mysql事务四种隔离级别

Mysql事务四种隔离级别

作者: 李moumou | 来源:发表于2020-05-31 21:41 被阅读0次

    首先可查询mysql自动提交状态

    select @@autocommit;
    

    结果如下:
    +----------------------+
    | @@autocommit |
    +----------------------+
    | 1 |
    +---------------------+
    可通过命令将数据库事务修改为不自动提交

    set autocommit =0;
    

    Mysql四种事务隔离级别:

    1. 读未提交(read uncommitted)也叫脏读(助记肮脏)
    设置事务隔离级别为:读未提交

    set session transaction isolation level read uncommitted;
    

    脏读:分别开启了事务A,B,事务A修改了表数据还未commit,事务B却读到了事务A未提交的数据。
    2. 读已提交 (read committed) 也叫不可重复读
    设置事务隔离级别为:读已提交

    set session transaction isolation level read committed;
    

    不可重复读:分别开启了事务A,B,事务B先读取数据,过程中事务A修改了并提交了数据,事务B再次读取,发现和第一次读取数据不一样
    3. 可重复读(repeatable-read)

    set session transaction isolation level repeatable read;
    

    幻读:分开开启事务A,B,事务A插入一条记录并提交,B此时不能查到那条记录,但是B同样插入该条记录时,会报出duplicate entry key primary,这种现象称为幻读。
    4. 可串行化(serializable)

    同一个事务操作中,每次查询结果都应该相同,也就是可重复读

    事务隔离性:4种隔离级别
    隔离级别 可能出现的异常
    读未提交 脏读 不可重复读 幻读
    读已提交 不可重复读 幻读
    可重复读 幻读
    可串行化

    相关文章

      网友评论

          本文标题:Mysql事务四种隔离级别

          本文链接:https://www.haomeiwen.com/subject/wwylzhtx.html