一、MySQL 日志:undo log、redo log、binlog

undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC(隔离性)。
redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复;
binlog (归档日志):是 Server 层生成的日志,主要用于数据备份和主从复制;

MVCC(多版本并发控制)详解

MVCC是数据库领域用于解决高并发场景下读写冲突的核心技术。其核心思想是:为数据的每一次修改生成一个 “版本”,读操作只访问符合条件的历史版本,从而实现 “读不加锁、写不阻塞读”,大幅提升数据库并发性能。

二、MVCC 的核心目标:解决并发难题

在数据库并发场景中,传统的 “锁机制” 会导致 读写互斥(读操作加共享锁,写操作加排他锁,两者冲突),引发性能瓶颈。MVCC 的出现就是为了在 “并发控制” 与 “性能” 之间找到平衡,具体目标包括:

  1. 避免读写阻塞:读操作(SELECT)无需等待写操作释放锁,写操作(UPDATE/DELETE/INSERT)也无需阻塞读操作。
  2. 支持事务隔离级别:实现 MySQL 中的 Repeatable Read(可重复读) 和 Read Committed(读已提交) 隔离级别(InnoDB 默认使用 Repeatable Read,通过 MVCC 避免幻读)。
  3. 提高并发吞吐量:减少锁竞争,让多个事务可以同时读写数据库,提升系统整体处理能力。

通俗理解一下:可以把 MVCC 理解成数据库的 “时光机” 机制,专门解决多个人同时操作数据时的冲突问题。
打个比方:你在看一本电子书(读数据),同时另一个人在修改这本书的内容(写数据)。没有 MVCC 的话,你可能会看到乱七八糟的半成品内容,或者对方修改时你得一直等着不能看。
但有了 MVCC 就不一样了:
数据库会给每条数据拍 “快照”,你看书时翻到的是某一时刻的完整版本(快照读),不受别人修改的影响;
别人修改时,会新建一个新版本的数据,旧版本依然保留给正在读的人用;
等你看完(事务结束),旧版本可能会被悄悄清理掉,不占额外空间。
这样一来,“读” 和 “写” 互不干扰,不用排队等待,数据库并发处理能力就大大提高了。这就是 MVCC 的核心作用 —— 通过保留数据的多个版本,让读写操作能同时进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/100470.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/100470.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/100470.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【面板数据】省及地级市农业新质生产力数据集(2002-2025年)

农业新质生产力是以科技创新为核心驱动力,以科技化、数字化、网络化和智能化为主线,通过技术革命性突破、生产要素创新性配置、产业深度转型升级,实现农业全要素生产率显著跃升的先进生产力形态 本数据基于2002-2025年各省政府工作报告中关于…

20250917在荣品RD-RK3588-MID开发板的Android13系统下使用tinyplay播放wav格式的音频

input keyevent 24 1|console:/sdcard # cat /proc/asound/cards console:/sdcard # ls -l /dev/snd/【需要打开Android13内置的音乐应用才会有声音出来,原因未知!】 1|console:/sdcard # tinyplay /sdcard/Music/kiss8.wav -D 1 -d 020250917在荣品RD-R…

总共分为几种IP

IP(Internet Protocol)地址根据不同的分类标准可分为多种类型,以下是常见的分类方式:按版本分类IPv4:32位地址,格式为四组十进制数字(如192.168.1.1),约43亿个地址&#…

【Linux】常用命令(六)

【Linux】常用命令(六)1. yum命令1.1 基本语法1.2 常用命令2. 从服务器把数据cp到本地3. uname命令3.1 常用命令1. yum命令 全称:Yellowdog Updater, Modified作用:是 RPM 包管理器的前端工具,用于基于 RPM 的 Linux …

go grpc开发使用

1、安装proto 下载 Windows 版本 打开官方发布页面 访问 Protocol Buffers 的 GitHub Releases 页面: 👉 https://github.com/protocolbuffers/protobuf/releases 解压 ZIP 文件 将下载的 ZIP 文件解压到一个你容易找到的目录,例如&#xff1…

MyBatis分页:PageHelper

MyBatis分页:PageHelper 📖 前言:为什么需要分页? 在处理大量数据时,一次性从数据库查询并返回所有结果是不可行的,这会带来巨大的性能和内存开销。分页是解决这一问题的标准方案。而PageHelper是一个极其流…

Gin框架:构建高性能Go Web应用

Gin框架:构建高性能Go Web应用 Gin是Go语言中最受欢迎的Web框架之一,以其高性能、简洁API和丰富的中间件支持而闻名。本文将带你从零开始,逐步掌握Gin框架的核心概念和高级特性,并通过实际代码示例演示如何构建高效的Web应用程序。…

IO进程——线程、IO模型

一、线程Thread1、引入1.1 概念相当于是一个轻量级的进程,为了提高系统的性能引入线程,在同一进程中可以创建多个线程,共享进程资源1.2 进程和线程比较相同点:都为操作系统提供了并发执行的能力不同点:调度和资源&…

人工智能概念:NLP任务的评估指标(BLEU、ROUGE、PPL、BERTScore、RAGAS)

文章目录一、评估指标基础1. 准确率(Accuracy)2. 精确率(Precision)3. 召回率(Recall)4. F1-Score5. 示例二、文本生成专用指标1. BLEU:机器翻译与标准化文案的“质量标尺”1.1 计算流程&#x…

团队对 DevOps 理解不统一会带来哪些问题

团队对DevOps理念与实践的理解不统一、片面甚至扭曲,是导致众多企业DevOps转型失败的根本原因,它将直接引发一系列深层次的、相互关联的严重问题。核心体现在:转型极易沦为“为了工具而工具”的盲目自动化,导致最核心的文化变革被…

企业级实战:构建基于Qt、C++与YOLOv8的模块化工业视觉检测系统(基于QWidget)

目录一、概述二、项目目标与技术架构2.1 核心目标2.2 技术选型2.3 软件架构三、AI推理DLL的开发 (Visual Studio 2019)3.1 定义DLL接口 (DetectorAPI.h)3.2 实现核心功能 (DetectorAPI.cpp)四、Qt Widget GUI应用程序的开发4.1 项目配置 (.pro 文件)4.2 UI设计 (mainwindow.ui)…

SVN自动化部署工具 脚本

SVN自动化部署工具 功能概述 这是一个自动化部署SVN仓库的bash脚本,主要功能包括: 自动安装SVN服务(如未安装) 创建SVN项目仓库 配置多用户权限 设置自动同步到网站目录 提供初始检出功能 下载地址 https://url07.ctfile…

Facebook主页变现功能被封?跨境玩家该如何申诉和预防

不少跨境玩家在运营Facebook公共主页时,最期待的就是通过变现工具获得稳定收入。但现实中,经常会遇到一个扎心的问题:主页好不容易做起来,却突然收到提示——“你的变现功能已被停用”。这意味着收入中断,甚至可能导致…

安装es、kibana、logstash

下载 elk 下载地址 elasticsearch地址: https://www.elastic.co/cn/downloads/elasticsearch kibana地址: https://www.elastic.co/cn/downloads/kibana logstash地址: https://www.elastic.co/cn/downloads/logstash 解压elk 创建es全家桶文件夹 cd /usr/local mkdir elk …

Django admin 后台开发案例【字段/图片】

这是一个简单的django admin 管理后台,这个应用案例主要是给运营人员进行填写数据 主要功能包括: 上传图片功能【选择上传时可以预览】【替换已有数据中的图片时可以预览新旧图片】 每条数据都将会记录操作历史。记录操作人是谁?修改内容是什么?并且定位责任到某一员。 …

【C++】const和static的用法

目录🚀前言💻const:“只读”的守护者💯修饰普通变量💯修饰指针💯修饰函数💯修饰类成员💯修饰对象🌟static:“静态存储”与“作用域控制”💯修饰全…

F019 vue+flask海外购商品推荐可视化分析系统一带一路【三种推荐算法】

文章结尾部分有CSDN官方提供的学长 联系方式名片 B站up: 麦麦大数据 关注B站,有好处! 编号: F019 关键词:海外购 推荐系统 一带一路 python 视频 VueFlask 海外购电商大数据推荐系统源码 (三种推荐算法 全新界面布局…

【大数据专栏】流式处理框架-Apache Fink

Apache Fink 1 前言 1.1 功能 1.2 用户 国际 国内 1.3 特点 ◆ 结合Java、Scala两种语言 ◆ 从基础到实战 ◆ 系统学习Flink的核心知识 ◆ 快速完成从入门到上手企业开发的能力提升 1.4 安排 ◆ 初识Flink ◆ 编程模型及核心概念 ◆ DataSet API编程 ◆ Data…

向内核社区提交补丁

一、背景 内核的版本一直以来一直在持续迭代,离不开众多开发者的贡献。有时候我们会根据项目要求基于现有的内核版本开发一些新的功能或者修复掉一些特定场下的问题,我们是可以将其提交给社区的。 一般提交社区有两个基本原则,一是提交的补…

TENGJUN-USB TYPE-C 24PIN测插双贴连接器(H14.3,4脚插板带柱):USB4.0高速传输时代的精密连接方案解析

在高速数据传输与多设备互联需求日益增长的当下,USB TYPE-C接口凭借其可逆插拔、高兼容性的优势成为主流,而TENGJUN推出的USB TYPE-C 24PIN测插双贴连接器(规格:H14.3,4脚插板带柱) ,以对USB4.0…