暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
InnoDB存储引擎.pdf
104
13页
2次
2023-10-24
免费下载
InnoDB 存储引擎
InnoDB 体系架构
后台线程分类
Master Thread
主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性。
Master Thread 具有最高的线程优先级别。其内部由多个循环(loop)组成:
主循环(loop)、后台循环(backgroup loop)、刷新循环(flush loop)、
暂停循环(suspendloop)。Master Thread 会根据数据库运行的状态在 loop
background loopflush loop suspend loop 中进行切换。
IO Thread
IO Thread 的工作主要是负责 AIO 请求的回调(call back)处理。分为 write
threadread threadinsert buffer threadlog IO thread
查看读写线程数:
mysql> show variables like 'innodb_%io_threads';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| innodb_read_io_threads | 4 |
| innodb_write_io_threads | 4 |
+-------------------------+-------+
2 rows in set
Purge Thread
事务被提交后,其所使用的 undolog 可能不再需要,因此需要 PurgeThread
回收已经使用并分配的 undo 页。
Page Cleaner Thread
作用是将之前版本中脏页的刷新操作都放入到单独的线程中来完成。而其目的
是为了减轻原 Master Thread 的工作及对于用户查询线程的阻塞,进一步提高
InnoDB 存储引擎的性能。
内存结构
InnoDB 存储引擎的内存划分:
image.png
缓冲池
在数据库系统中,由于 CPU 速度与磁盘速度之间的鸿沟,基于磁盘的数据库系
统通常使用缓冲池技术来提高数据库的整体性能。
缓冲池简单来说就是一块内存区域,通过内存的速度来弥补磁盘速度较慢对数
据库性能的影响。主要分为:索引页(index page)、 数据页(data
page)、 undo 页、插入缓冲池(insert buffer)、锁信息(lock info)、
自适应哈希索引、数据字典信息。
在数据库中进行读取页的操作,首先将从磁盘读到的页存放在缓冲池中,这个
过程称为将页“FIX”在缓冲池中。下一次再读相同的页时,首先判断该页是否
在缓冲池中。若在缓冲池中,称该页在缓冲池中被命中,直接读取该页。否
则,读取磁盘上的页。
对于数据库中页的修改操作,则首先修改在缓冲池中的页,然后再以一定的频
率刷新到磁盘上。
查看缓冲池数量:
mysql> show variables like 'innodb_buffer_pool_instances';
+------------------------------+-------+
of 13
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜