当前位置: 首页 > wzjs >正文

做慈善网站app推广平台网站

做慈善网站,app推广平台网站,新闻网站建设管理合同,微信关注公众号达梦数据库多版本并发控制 1 多版本并发控制解决了什么问题?2 达梦MVCC实现方式2.1 版本链结构2.1.1 物理记录2.1.2 回滚记录2.1.3 版本链实现方式 2.2 可见性原则2.3 历史数据获取 1 多版本并发控制解决了什么问题? MVCC(Multi-Version Con…

达梦数据库多版本并发控制

  • 1 多版本并发控制解决了什么问题?
  • 2 达梦MVCC实现方式
    • 2.1 版本链结构
      • 2.1.1 物理记录
      • 2.1.2 回滚记录
      • 2.1.3 版本链实现方式
    • 2.2 可见性原则
    • 2.3 历史数据获取

1 多版本并发控制解决了什么问题?

MVCC(Multi-Version Concurrency Control)的核心思想是通过数据版本化实现读写操作的隔离。与传统的锁机制不同,MVCC允许读操作在不阻塞写操作的情况下进行(反之亦然),从而显著提升并发性能。

mvcc是解决高并发场景下的性能问题,在确保数据一致性、隔离性前提下,性能还更高

例如
传统锁机制:
当多个事务同时读写同一数据时,锁机制可能导致严重的资源竞争(如读阻塞写、写阻塞读),甚至死锁问题。
/
MVCC:
每个事务看到的是数据在某个时间点的快照(Snapshot),读写操作无需互斥,天然避免了大部分锁竞争。

2 达梦MVCC实现方式

DM 数据库基于物理记录和回滚记录实现行级多版本支持,数据页中只保留物理记录的最新版本,通过回滚记录维护历史版本
所有事务针对特定的版本进行操作

2.1 版本链结构

2.1.1 物理记录

物理记录存储在数据页中

格式

物理记录TIDRPTR

物理记录:目前数据库中业务数据的最新版本
TID: 修改记录的事务号
PRTR:回滚段中上一个版本回滚记录的物理地址(类似于指针,指向回滚段中的前一个版本的地址)

2.1.2 回滚记录

数据行的旧版本存储在UNDO日志中(回滚记录中),避免主表空间膨胀。

格式

回滚记录TIDRPTR

回滚记录:数据的历史版本
TID: 回滚记录对应的事务号
PRTR:回滚段中上一个版本回滚记录的物理地址(再指向回滚记录的上一个版本)

2.1.3 版本链实现方式

通过物理记录和回滚记录的PRTR实现链表结构
每行数据(记录)都包含多个版本,版本之间通过PRTR(指针)链接,形成链表结构。

RPTR 字段起到了关键的链接作用。无论是插入、更新还是删除操作,RPTR 都确保了能够建立起不同版本记录之间的关联链条

TID 字段则为追踪事务操作提供了便利,方便在回滚等操作时确定是由哪个事务引发的相应操作。

2.2 可见性原则

每行数据(记录)都包含多个版本,但是事务能够看见哪个版本(能够对哪个版本进行查询或操作),是实现多版本控制的关键;

DM 通过活动事务表,来确定事务的可见性。

每个活动事务都对应有一个活动事务视图,根据事务隔离级的不同,在事务启动时(串行化),或者语句执行时(读提交),都要重构活动事务表(根据隔离级别不同,重构时机会有区别),收集这一时刻所有活动事务,并记录系统中即将产生的事务号NEXT_TID、MIN_TRXID
/
活动事务视图主要记录该事务启动时:

  • 从IID系统获取的该事务新TRXID(当前事务id)
  • 当前事务系统中的所有其它活动事务的TRXID
  • 当前IID系统的下一TRXID——NEXT_TRXID(系统中下一个事务id)
  • 该事务及其活动事务视图中的最小TRXID——MIN_TRXID(最小的活动事务)

DM 多版本可见性的三个原则:

1.物理记录的 TRXID 等于当前事务号,说明是本事务修改的物理记录,物理记录可见;

解释
本事务修改的物理记录是可见的,自己的数据肯定可见

2.物理记录的 TRXID 不在活动事务表中,并且 TRXID 小于 NEXT_TID,物理记录可见;

解释
事务号id是小于系统中的下一个事务id,并且不在活动事务表中,证明事务已经提交完成,已提交的数据可见

3.物理记录的 TRXID 包含在活动事务表中,或者 TRXID 大于等于 NEXT_TID,物理记录不可见;

解释
1.事务还未提交的数据不可见
2.事务id>=系统中的下一个事务id,证明是在本事务开始后的事务,不可见

总结
可见: 已提交的数据可见,并且自己能看到自己修改的数据
不可见: 未提交的事务不可见,当前事务后开启的事务不可见

2.3 历史数据获取

根据版本的tid字段,通过可见性原则判断

如可见 即获取到了满足当前事务的历史版本数据;
如不可见 则根据 RPTR 指针继续向前回溯。

如果一直不能找到对当前事务的可见版本(例如此记录是一个活动事务插入的新记录),则此记录将不会添加到查询结果集中。


更多其他数据库相关专栏:

1.数据库优化
数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等
数据库优化(sql优化)专栏连接

2.达梦分布式数据库:
部署详细步骤(DEM)、备份还原实战、核心特性理解、使用心得、表分区方式详细介绍、表分区最佳实践、DPC架构详解等
达梦分布式DPC专栏连接

3.应用开发类
jdbc、hibernate、ibatis、mybatis、MyBatis-Plus、Spring、中间件mycat、Sharding-JDBC等
达梦数据库应用开发专栏连接

http://www.dtcms.com/wzjs/238986.html

相关文章:

  • 百度网站怎么优化排名chrome google
  • 石家庄网站建设推广公司报价免费的行情软件app网站
  • 网站建设经典语录网络销售入门基本知识
  • 成都创新互联网站建设微信营销平台系统
  • 网站支付接口如何做极速建站网站模板
  • 济源市住房和城乡建设局网站网站管理与维护
  • wordpress 直接连接数据库文件成都seo正规优化
  • 湖南建设资质申请网站商城网站开发公司
  • 伤豆丁文库网站开发理发美发培训学校
  • 人与狗做的网站谁有包括哪些内容
  • 网站如何做图片特效临沂google推广
  • 东莞常平网站设计太原网站优化公司
  • 日本做外贸网站未来网络营销的发展趋势
  • linux可以做网站开发吗附近广告公司联系电话
  • dw制作网站网页模板广告推广的软件
  • 汽车网站设计毕业论文百度推广费用预算表
  • wordpress默认模板目录在哪里搜索引擎优化
  • 商城网站建设怎么收费seo chinaz
  • wordpress网站建设教程视频福州seo网站推广优化
  • 怎么做网站编辑如何推广自己的业务
  • 城乡建设部网站造价工程师查询长尾词挖掘免费工具
  • 图文消息点击进去是自己的网站网页制作软件推荐
  • 专做程序员招聘的网站app营销策略有哪些
  • 如何设置网站默认首页做网站怎么做
  • 中建设计集团网站最新军事新闻
  • 二级网站排名做不上去宁波seo优化报价多少
  • 学做招投标的网站东莞网站seo优化托管
  • 福州企业自助建站一键优化清理手机
  • php和html5做网站怎么申请一个网站
  • 深圳网站开发网站大数据营销经典案例