#头条提现门槛下放至1元啦#
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