zoukankan      html  css  js  c++  java
  • 针对MySQL的MVCC多版本并发控制的一些总结

    MVCC

    MVCC细节太多,我直接备忘一下总结:

    MVCC就是通过事务的ID与行数据的版本(修改事务的ID)进行比较(通过redo log可以回溯版本)得出哪些版本的行数据可见和不可见而实现的事务隔离

    一致性读

    可重复读,查询只承认在事务启动前就已经提交完成的数据
    读提交,查询只承认在语句启动前就已经提交完成的数据
    自己版本更新的总可见(版本=事务/语句)
    其他版本未提交的不可见

    版本已经提交,但是是在当前版本之后创建的不可见
    版本已经提交,但是在当前版本开始前提交的可见(虽然都提交,但是创建视图的点不同)

    更新

    更新操作中的读,只能是当前读,已经提交完成的最新版本,或者遇到行锁阻塞

    开启事务

    对于可重复读

    1、start transaction 开始事务的语句事务开启点是在不是这句,而是第一个执行sql语句的地方
    2、start transaction with consistent snapshot 开始事务的语句事务开启点在这这句

    对于读提交

    start transaction 和 start transaction with consistent snapshot都是以每条语句的执行创建视图

  • 相关阅读:
    搜狗输入法--评价
    课堂练习--找水王
    学习进度条---第十二周
    Java接口与继承动手动脑
    Java数组课后作业
    Java语言String字符串课后作业
    Java类和对象课后作业
    Java语言第四讲
    Java语法基础----课后实践作业
    Java课堂作业-------参数求和
  • 原文地址:https://www.cnblogs.com/zxporz/p/11417756.html
Copyright © 2011-2022 走看看