zoukankan      html  css  js  c++  java
  • MySQL实战03の事务隔离级别

    提到事务,就会想到ACID(Atomicity、Consistency、Isolation、Durability,即原子性,一致性,隔离性,持久性)。

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

    读未提交:一个事务还没提交时,它做的变更就能被别的事务看到。
    读提交:一个事务提交之后,它做的变更才会被其他事务看到。
    可重复读:一个事务执行过程中,从事务开始到事务提交看到的数据是一致的。
    串行化:对于同一条记录,串行访问,读写都会加锁。

    Oracle默认隔离级别就是读提交,迁移到MySQL,需要修改隔离级别为读提交。将启动参数transaction-isolation值设置为READ-COMMITTED。

    可重复读场景

    对账功能中判断上个月的余额和本月余额的差额,是否与本月账单明细一致。在校对过程中,即使有用户交易,也不影响校对结果。

    事务隔离实现

    在MySQL中,实际上每条记录在更新的时候都会同时记录一条回滚操作。通过回滚操作,都可以得到前一个状态的值。同一条记录在系统中可以存在多个版本,就是数据库的多版本并发控制(MVCC)。
    避免长事务:长事务意味着系统里会存在很老的事务视图,占用大量存储空间。

    原文出处:https://time.geekbang.org/column/article/68963(极客时间专栏)

  • 相关阅读:
    day18:正则表达式和re模块
    finance1:专业词汇
    Iterator & Iterable 和 Comparable&Comparator
    pandas中三种索引方式(.loc.iloc.ix)
    XML序列化与反序列化
    控件蓝图里控件绑定问题
    Mouse Properties(鼠标属性)
    cSV
    从父控件移除控件
    是否显示鼠标指针
  • 原文地址:https://www.cnblogs.com/yangjiming/p/10318378.html
Copyright © 2011-2022 走看看