innoDB的MVCC实现方式
实现 方式 InnoDB MVCC
2023-09-27 14:26:37 时间
innodb的MVCC是通过在每行记录后面保存两个隐藏的列来实现。一个保存行的创建时间,一个保存行的过期时间,存储的值为系统版本号。每开启一个新的事务,系统版本号都会自动增加。
innodb为插入一行新纪录,保存当前系统版本号为行版本号,同时保存当前系统版本号为原来行删除标识
innodb的MVCC是通过在每行记录后面保存两个隐藏的列来实现。一个保存行的创建时间,一个保存行的过期时间,存储的值为系统版本号。每开启一个新的事务,系统版本号都会自动增加。在repeatable read隔离级别下,MVCC的具体操作:
innodb为插入一行新纪录,保存当前系统版本号为行版本号,同时保存当前系统版本号为原来行删除标识
保存这两个额外系统版本号,使大多数读操作都可以不用加锁。但是会增加额外的存储空间,需要做更多的行检查和额外的维护工作
MVCC只在repeatable read和read committed两个隔离级别工作。read uncommitted总是读取最新数据。serializable则会对所有读取的行都加锁
相关文章
- python使用tqdm库实现进度条详解
- python基础编程:python如何实现浪漫的烟花秀(附代码)
- Redis: 分布式锁的正确实现方式( Java 版 )
- Ajaxterm + nginx 实现一个简单的堡垒机
- 增量备份+增量备份的实现方式+差异备份案例+累积备份案例
- SpringBoot+ShardingJDBC实现读写分离、分库分表
- 10张流程图+部署图,讲透单点登录原理与简单实现
- -第3章 jQuery方法实现下拉菜单显示和隐藏
- a标签不跳转的几种实现方式
- Netty实现的一个异步Socket代码
- Swift 实现图片转字符画的功能
- JAVA多线程实现的四种方式
- STM32F0使用LL库实现DMA方式AD采集
- 浅析浏览器跨页面通信的方式:localStorage+StorageEvent事件、BroadCast Channel广播通信、Service Worker消息中转、postMessage、直接引用-window.open + window.opener、WebSocket服务端推送、利用iframe桥实现非同源页面通信
- Redis分布式锁的正确实现方式
- 利用EasySQLMAIL实现自动数据提取和邮件发送功能 (1)
- C#-实现的鼠标钩子
- Python实现批量重命名文件的几种方式
- 不借助第三个变量实现两个变量的交换