本文介绍: 如下图所示:用户操作数据库表中的数据时,首先在内存结构的缓冲区里找到对应的数据,如果缓冲区中没有要处理的数据,那么会从磁盘的表空间文件里加载数据到缓冲区,当我们增删改查时,都是在缓冲区里操作的,当数据处理完毕后,经过一定的频率通过一组后台线程,将数据刷新到磁盘中的表空间里,进行数据的持久化。系统表空间是Change Buffer更改缓冲区的存储区域,更改缓冲区中的数据都在系统表空间中,如果MySQL系统中的表没有自己独立的表空间文件,或者也没有使用通用表空间,此时系统表空间就是该表的表空间。
1.InnoDB存储引擎的架构
在MySQL5.5版本之后,默认使用InnoDB作为数据库存储引擎,它擅长事务的处理,具有崩溃恢复的特性,在日常的开发中使用最为广泛。
在InnoDB存储引擎的架构中,由两部分主要组成,分别是内存结构(IN-Memory Structures)和磁盘结构(ON-Disk Structures)。
2.InnoDB存储引擎的内存结构
在InnoDB存储引擎的内存结构中,主要分为四大部分:Buffer Pool(缓冲池)、Change Buffer(更改缓冲区)、Adaptive Hash Index(自适应HASH索引)、Log Buffer(日志缓冲区)。
2.1.Buffer Pool缓冲池
2.2.Change Buffer更改缓冲区
2.3.自适应Hash索引
2.4.Log Buffer日志缓冲区
3.InnoDB存储引擎的磁盘结构
3.1.System Tablespace系统表空间
3.2.File-Per-Table Tablespaces每个表都有单独的表空间
3.3.General Tablespaces通用表空间
3.4.Undo Tablespaces撤销表空间
3.5.Temporary Tablespaces临时表空间
3.6.Doublewrite Buffer Files双写缓冲区
3.7.Redo Log重做日志
4.InnoDB存储引擎的后台线程
4.1.Master Thread核心后台线程
4.2.IO Thread IO线程
4.3.Purge Thread回收undo log的线程
4.4.Page Cleaner Thread协助后台线程刷新脏页到磁盘的线程
5.InnoDB的存储引擎的架构连贯
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。