| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MVCC和BufferPool(六) -> 正文阅读 |
|
[大数据]MVCC和BufferPool(六) |
数据库笔记MVCCMVCC = undo + read-view 为了隔离性而服务 定义: MVCC:多版本并发控制机制,在 读已提交和可重复读 隔离级别下实现了MVCC机制 特点: 不通过加锁,来实现事务之间的隔离性 实现原理undo日志版本链定义: undo日志版本是指 一行数据被多个事务依次修改过后, **MySQL会保留每次操作前的数据。**并用 trx_id【事务id】 和 roll_pointer 【回滚指针】将undo日志串联起来,形成历史记录版本链。 特别的: 对于删除的情况
特点:
一致性视图 read-view定义: 当事务开启时,执行任何的查询SQL,会生成当前事务的 一致性视图 组成:
注意: 事务id在==执行第一个DML语句时,才会生成,== 而不是在begin/start transaction生成。 版本链比对规则readview:{ [200],300 } 规则:
MVCC读已提交实现了MVCC机制 特点:
MVCC可重复读实现了MVCC机制 特点:
BufferPoolBufferPool在 引擎层 由InnoDB实现,基于LRU算法 为什么设计BufferPool?因为没有BufferPool,一次请求就需要对磁盘进行一次 随机读写I/O更新磁盘数据,性能差; 虽然设计BufferPool,会有对日志文件的读写,但对日志文件是顺序读写I/O,性能会比随机读写I/O高很多 一条sql的执行(服务层)一条DMLsql的执行 (引擎层)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:32:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |