首页 > 数据库 >Mysql MVCC多版本解析

Mysql MVCC多版本解析

时间:2024-07-02 22:20:37浏览次数:1  
标签:事务 MVCC 视图 id trx 提交 Mysql 解析 ID

1.首先各行数据,都有一个trx_id(事务ID)和回滚指针,形成一个链表数据结构的数据。其实这便是undo.log(回滚日志)
2.当select查询数据的时候,还会生成视图数据。
其中包含未提交的最小事务未提交事务ID数组、应该分配下一个的事务ID创建视图的事务ID
首先会生成read view,将未提交的事务记录下来,并生成当前read view事务ID、未提交事务最小的ID。
3.此时就可以通过这个read view和undo.log进行比较。
首先会比较行数据trx_id与未提交的事务最小事务ID,如果trx_id<未提交的事务最小事务ID,说明事务是在已提交后创建的,所以可见。
trx_id>=分配下一个事务ID,则说明当前视图是所有未提交的事务创建之后才提交的.
如出现未提交的事务最小事务ID<trx_id<分配给下一个事务ID
这里还会出现一个判断如果trx_id在未提交数组里面,是可见的。否则不可见。

标签:事务,MVCC,视图,id,trx,提交,Mysql,解析,ID
From: https://www.cnblogs.com/jichenghui/p/18280646

相关文章

  • MEMS光纤麦克风传感器声音信号采集实例解析
    概念 光纤传感器是一种通过光纤线缆来传输光信号,并将光信号转换为电信号的传感器,光纤传感器一般是由形状各样的光纤探头+光纤线缆+光纤放大器组成。光纤传感器的原理是将来自光源的光经过光纤送入调制器,使待测参数与进入调制区的光相互作用后,导致光的光学性质(如光的强度、波长......
  • MySQL-15.锁
    C-15.锁事务的隔离性由本章讲述的锁来实现。1.概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单,金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在......
  • MySQL5.7&8.0权限-角色管理
    数据控制语言(DataControlLanguage,DCL)用于用户权限的管理,包括了GRANT与REVOKE命令。授权(GRANT)MySQL有很精细的权限控制:服务器级 ---->DB级----------->表----------------->列 ------------------>对象,存储过程,视图等mysql.user  mysql.db   mysql.tables_......
  • LLaMA-Factory/scripts/length_cdf.py 源码解析
    这段代码定义了一个函数 length_cdf,用来计算和打印数据集样本长度的累积分布函数(CDF),并在脚本直接运行时通过 fire 库将该函数暴露为命令行接口。我们逐行解释这段代码:python复制fromllmtuner.dataimportget_datasetfromllmtuner.hparamsimportget_train_argsfrom......
  • 2023年中国中老年市场白皮书:中老年服务及产品“人-货-场“解析
    近日,CIC灼识咨询联合量子之歌发布了《2023年中国中老年市场白皮书——中老年服务及产品"人-货-场"三维解析》报告。该报告深入剖析了中国中老年市场的现状与发展潜力,从消费者需求、产品供给、购买渠道三个维度进行了全面分析,揭示了中老年群体在日用品、医养服务、保健消费以......
  • 【MySQL】mysql访问
    mysql访问1.引入MySQL客户端库2.C/C++进行增删改3.查询的处理细节4.图形化界面访问数据库4.1下载MYSQLWorkbench4.2MYSQLWorkbench远程连接数据库点赞......
  • mysql语句大全-工作中常用整理(欢迎大家在评论区继续补充)
    1.NOTEXISTS和NOTINSELECTCOUNT(ca.aaa)FROMxxcaWHERENOTEXISTS(SELECTlabel.*FROMxxxlabelWHERElabel.aaa=ca.aaa) SELECTCOUNT(ca.aaa)FROMxxcaWHEREca.aaaNOTIN(SELECTlabel.aaaFROMxxxlabelWHERElabel.aaa=ca.aaa) 2.查询表结......
  • 资产编排大师:Symfony资产组件的全面解析
    资产编排大师:Symfony资产组件的全面解析在现代Web开发中,Symfony框架以其强大的组件系统而著称。资产组件是Symfony提供的关键工具之一,用于管理和优化前端资源,如JavaScript、CSS、图片等。本文将深入探讨Symfony资产组件的功能和使用方法,通过详细的解释和代码示例,展示如何高......
  • MySQL表的操作
    文章目录MySQL表的操作1、创建表2、创建表案例3、查看表结构4、修改表4.1、修改表结构4.2、表中添加字段4.3、表中删除字段4.4、修改表名4.5、修改字段名5、删除表MySQL表的操作1、创建表语法:[]内容可省略createtable表名( 列名1列类型1[notnull][defa......
  • Navicat for MySQL 11软件下载及安装教程
    ​根据行业数据显示数据库备份和恢复:Navicat提供了备份和恢复数据库的功能,使用者能够创建定期的数据库备份,并在需要时恢复数据,这有助于保护数据免受意外删除、损坏或灾难性事件的影响。也就是说数据导入和导出:Navicat提供了灵活的数据导入和导出功能,能够从不同的数据源导入数据......