美文网首页
MYSQL学习笔记2 事务隔离

MYSQL学习笔记2 事务隔离

作者: 夢醒皆涳 | 来源:发表于2022-06-17 16:31 被阅读0次

    事务隔离

    • ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)
    • 脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题

    SQL 标准的事务隔离级别包括:

    读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializable )

    • 读未提交是指,当前事务没提交变更,其他事务可以看到
    • 读提交是指,当前事务提交后,别的事务才能看到
    • 可重复读是指, 别的事务在本身过程中看到始终一样,包含读提交的情况,当前事务没提交,别的事务自始至终也看不到
    • 串行化,顾名思义是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。

    回滚

    • 实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。
    • 不同时刻启动的事务会有不同的 read-view,一条数据被多次修改,回滚会按照次序回滚

    事务的启动方式

    • 推荐使用 set autocommit=1, 通过显式语句的方式来启动事务。autocommit=0会造成select 语句 长事务。
    • 你可以在 information_schema 库的 innodb_trx 这个表中查询长事务

    相关文章

      网友评论

          本文标题:MYSQL学习笔记2 事务隔离

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