【MySQL】-MVCC多版本并发控制

1、当前读

select 不加锁状态,当前读=快照读

2、快照读

在select加锁下,读取数据后,形成快照。每个事务都会形成自己的快照内容

复制代码
SELECT * FROM xx_table LOCK IN SHARE MODE;

SELECT * FROM xx_table FOR UPDATE;

INSERT INTO xx_table ...

DELETE FROM xx_table ...

UPDATE xx_table ...

仅RC、RR支持快照读

3、RC级别

在事务中,每次select 都会读取最新记录,形成快照,产生不可重复读问题

4、RR级别

在事务中,只有第一次select读取最新数据,形成快照。

在该事务中更新内容,然后更新快照。后面直接读取快照内容。

5、行记录存在隐藏字段

1、db_row_id:如果表中没有主键索引,则创建默认主键ID

2、db_trx_id:当前数据最近一次修改的事务ID

3、roll_prt:回滚指针,记录上一次的版本,引用 undolog 的上一个版本的快照地址

6、Read View

多事务下

用于解决本次事务应该看到哪个快照,不应该看到哪个快照。

主要属性说明:

●trx_ids,系统当前未提交的事务 ID 的列表。

●low_limit_id,应该分配给下一个事务的id 值。

●up_limit_id,未提交的事务中最小的事务 ID。

●creator_trx_id,创建这个 Read View 的事务 ID。

相关推荐
sunshine8856 小时前
财务RPA的深水区应用:超越自动化,迈向智能决策支持
数据库
efir OONA6 小时前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
zhangchaoxies7 小时前
如何在 Go 中安全复制接口指针所指向的值
jvm·数据库·python
陈陈CHENCHEN7 小时前
【数据库】MySQL 8.0.40 至 8.0.44 RPM 方式升级指南
数据库·mysql
Azhao11068 小时前
一文读懂分享网站模块介绍(附实操教程)
mysql
m0_734949798 小时前
怎么利用Navicat进行调整备份文件压缩等级_详细配置与操作步骤
jvm·数据库·python
T.i.s8 小时前
番外续2-MIT-BIH Arrhythmia Database
数据库
有味道的男人8 小时前
AI 效率翻倍:对接 1688 拍立淘接口,商品全量信息一键抓取
数据库
m0_741173339 小时前
如何处理SQL中的NULL值_使用ISNULL或COALESCE函数
jvm·数据库·python
志栋智能9 小时前
超自动化巡检:解锁运维数据的深层价值
运维·服务器·数据库·自动化