首页 > 数据库 >数据库的MVCC模式

数据库的MVCC模式

时间:2023-09-27 20:11:18浏览次数:38  
标签:事务 提交 数据库 模式 修改 版本 MVCC 数据

  1. PG的mvcc模式:多版本并发控制,通过在数据库中创建多个版本的数据来实现并发的读写操作。每个数据库事务都能够看到一个逻辑上一致的数据库快照,当一个事务修改了数据库中的数据时,他不会直接修改原始数据,而是创建一个新的数据版本,并将修改后的数据写入新的数据版本中,这样其他事务依然可以读取到旧的数据版本,不会被修改的事务所影响。 通过mvcc,pg可以并发的处理多个读写操作而不会发生冲突。当事务提交时,它的修改才会对其他事物可见。
  2. mysql的mvcc:在mysql中通过两个关键数据结构来实现:

    A:undo Log(回滚日志):记录事务对数据的修改操作,在事务回滚时用于撤销已提交的修改。

    B:Read View(读视图):每个事务开始时生成,用于控制每个事务能够看到数据版本。读视图用于记录事务开始时提交事务的ID,设置事务只能看到对应的数据版本。

总而言之,言而总之,就两句话:

  读操作不会阻塞读操作:允许多个事务同时读取数据。

  写操作不会阻塞读操作:读取未提交的数据副本,不必等到事务的提交操作。

标签:事务,提交,数据库,模式,修改,版本,MVCC,数据
From: https://www.cnblogs.com/ybex/p/17734224.html

相关文章

  • MVCC原理解读
    1.前导知识1.1什么是MVCCMVCC全称Multi-VersionConcurrencyControl,即多版本并发控制,MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。多版本控制:指的是一种提高并发的技术,最早的数据库系统,只有读读之间可以并发,读写、写......
  • SSIS抽取intersystems cache 数据库数据,SQLSERVER数据库配置CACHE数据库DBLINK
       最近有个新需求,需要用SSIS抽取intersystemscache数据库表数据步骤一:首先想到的是通过ODBC驱动进行连接,第一步安装cache驱动步骤二:配置cache数据库连接串,关键内容:CACHe数据库地址,端口,空间名,用户名,密码步骤三:测试ODBC链接步骤四:SSIS中配置ODBC链接 步骤五:常规数......
  • openGauss学习笔记-82 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用准
    openGauss学习笔记-82openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT使用准备前提条件以下是使用openGaussMOT的软硬件前提条件。82.1硬件支持MOT支持最新硬件和现有硬件平台,支持x86架构和华为鲲鹏Arm架构。MOT与openGauss数据库支持的硬件完全对齐。更多信息请参......
  • mongo数据库学习
               实现了数据库的增删改查......
  • JAVA 单例设计模式
    单例模式(SingletonPattern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例......
  • 延时双删就是操作线程进出数据库经过缓存各删一次
     文章目录1、何为延时双删2、常用缓存策略2.1、介绍2.2、先删缓存后更库2.3、先更库后删缓存2.4、使用场景3、延时双删实现4、为什么要使用延时双删5、方案选择6、延时双删真的完美吗7、如何确定延时的时间 1、何为延时双删延迟双删(DelayDoubleDe......
  • 27、Flink 的SQL之SELECT (Pattern Recognition 模式检测)介绍及详细示例(7)
    Flink系列文章1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性15、Flink的tableap......
  • Hadoop 1.0.2 安装 使用 单机模式 Hadoop_1
    装完的HDFS用IE打开访问,查看其磁盘使用情况:http://192.168.33.10:50070/dfshealth.jsp step1.为Hadoop增加用户,记住设定的密码 Java代码 1.$sudoaddgrouphadoop2.$sudoadduser--ingrouphadoophduserstep2.ssh的安装与设置 由于Hadoop......
  • 运行在容器中Postgres数据库数据损坏后如何恢复?
    前言在使用K8S部署RSS全套自托管解决方案-RssHub+TinyTinyRss,我介绍了将RssHub+TinyTinyRSS部署到K8s集群中的方案.其中TTRSS会用到Postgres存储数据,也一并部署到K8s容器中.但是最近,由于一次错误操作,导致Postgres数据库的WAL损坏,Postgres......
  • SQLPro Studio:Mac用户的数据库管理神器
    SQLProStudio是一款专为Mac用户设计的数据库管理工具,它集成了强大的SQL编辑器、数据库管理和可视化设计器等功能,帮助用户轻松管理和操作各种类型的数据库。无论您是专业数据库管理员还是初学者,SQLProStudio都能为您提供简单、高效和一站式的解决方案。→→↓↓载SQLProStudio......