点击上方蓝字关注我
InnoDB是MySQL中最重要的存储引擎之一,它的架构设计旨在提供高可靠性和高性能。以下是InnoDB架构的简要介绍:
InnoDB架构主要包括两种结构:内存中结构和磁盘上结构。
1. 内存中结构
• 缓冲池(Buffer Pool):缓存频繁访问的数据,减少磁盘I/O操作,提高查询性能。
• 变更缓冲区(Change Buffer):缓存对二级索引页的更改,当这些页不在缓冲池中时,以避免耗时的I/O操作。
• 自适应哈希索引(Adaptive Hash Index):为某些读操作提供快速的内存中查找机制,加速对频繁查询索引页的访问。
• 日志缓冲区(Log Buffer):保存要写入事务日志的更改,通过先写入内存再定期刷新到磁盘上的重做日志,来提高性能。
2. 磁盘上结构
•系统表空间(System Tablespace):存储变更缓冲区,InnoDB使用一个或多个数据文件来存储系统表空间。
• 各个表的独立表空间(File-per-table Tablespaces):每个InnoDB表都可以有自己的表空间。
• 通用表空间(General Tablespaces):可以容纳多个表的表空间。
• 撤销表空间(Undo Tablespaces):存储撤销日志,这些日志记录了事务进行中必须保留的旧数据版本。
• 临时表空间(Temporary Tablespaces):存储临时数据,如排序操作或哈希索引创建过程中的数据。
• 双写缓冲区(Doublewrite Buffer):保护数据不因崩溃而损坏,通过先写入双写缓冲区再写入表空间文件。
• 重做日志(Redo Log):记录数据变更,以便在系统崩溃后恢复数据。
• 撤销日志(Undo Logs):记录了事务进行中必须保留的旧数据版本,以支持事务回滚和MVCC。
3. 各个版本的体系架构图
MySQL5.5
MySQL5.6
MySQL5.7
MySQL8.0
往期精彩回顾
2. mysql8.0新增用户及加密规则修改的那些事
3. 比hive快10倍的大数据查询利器-- presto
4. 监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库
5. PostgreSQL主从复制--物理复制
6. MySQL传统点位复制在线转为GTID模式复制
扫码关注