洞悉MySQL底层架构:游走在缓冲与磁盘之间
提起MySQL,其实网上已经有一大把教程了,为什么我还要写这篇文章呢,大概是因为网上很多网站都是比较零散,而且描述不够直观,不能系统对MySQL相关知识有一个系统的学习,导致不能形成知识体系。为此我撰写了这篇文章,试图让这些底层架构相关知识更加直观易懂:
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
洞悉MySQL底层架构:游走在缓冲与磁盘之间
一条 SQL 语句在 MySQL 中是如何执行的?
有如下表格:
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
一条 SQL 语句在 MySQL 中是如何执行的?
你该理解的InnoDB引擎知识都在这里了
看完本篇章,您将了解到:
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
你该理解的InnoDB引擎知识都在这里了
InnoDB 双写缓冲 Double Write Buffer 揭秘
双写缓冲区(Doublewrite Buffer)是一个存储区,是InnoDB在tablespace上的128个页(2个区),大小是2MB[1]。
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
InnoDB 双写缓冲 Double Write Buffer 揭秘
图解 MySQL InnoDB Redo Log 重做日志原理
MySQL重做日志(Redo Log)主要适用于数据库的崩溃恢复,用于实现数据的完整性。
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
图解 MySQL InnoDB Redo Log 重做日志原理
图解 MySQL InnoDB Undo Log 回滚日志原理
上面说的redo log记录了事务的行为,可以通过其对页进行重做操作,但是食物有时候需要进行回滚,这时候就需要undo log了。[1]
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
图解 MySQL InnoDB Undo Log 回滚日志原理
InnoDB执行引擎内幕总结
数据完整性依靠:redo log 事务隔离级别的实现依靠MVCC,MVCC依靠undo log实现 IO性能提升方式:buffer pool加快查询效率和普通索引更新的效率,log buffer对日志写的性能提升 查询性能提升依赖于索引,底层用页存储,字段越小页存储越多行记录,查询效率越快;自增字段作为聚集索引可以加快插入操作; 故障恢复:双写缓冲区、redo log 主从同步:binlog
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
InnoDB执行引擎内幕总结
InnoDB执行引擎整体架构
如下图,为存储引擎的架构:
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
InnoDB执行引擎整体架构
图解 MySQL InnoDB Buffer Pool 原理
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
图解 MySQL InnoDB Buffer Pool 原理
Change Buffer 是什么?
change buffer是一种特殊的数据结构,当二级索引页(非唯一索引)不在缓冲池中时,它们会缓存这些更改 。当页面通过其他读取操作加载到缓冲池中时,再将由INSERT,UPDATE或DELETE操作(DML)产生的change buffer合并到buffer pool的数据页中。
作者:帅旋
|
发表于 2020-05-30
|
分类于  存储
Change Buffer 是什么?
14567
×
Java架构杂谈

订阅及时获取网站内容更新。

充电

当前电量:100%

Java架构杂谈

订阅我,及时获取网站内容更新。