问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql 官网有innodb 结构图么

发布网友 发布时间:2022-04-30 03:26

我来回答

2个回答

懂视网 时间:2022-04-30 07:47

后台线程

后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,另外,将已修改的数据文件刷新到磁盘文件,同时,保证在数据库发生异常的情况下,InnoDB能恢复到正常运行状态。InnoDB是多线程模型,不同的线程用于处理不同的任务。

Master Thread

Master Thread是核心后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,包括脏页的刷新,合并插入缓冲(insert buffer),undo页的回收等。

IO Thread

IO Thread负责IO请求的回调。主要有read, write, insert buffer和log IO Thread。其中read thread和write thread分别使用innodb_read_io_threadsinnodb_write_io_threads参数进行设置。可以通过命令show engine innodb status来查看InnoDB中的IO Thread:


I/O thread 0 state: waiting for i/o request (insert buffer thread) I/O thread 1 state: waiting for i/o request (log thread) I/O thread 2 state: waiting for i/o request (read thread) I/O thread 3 state: waiting for i/o request (read thread) I/O thread 4 state: waiting for i/o request (read thread) I/O thread 5 state: waiting for i/o request (read thread) I/O thread 6 state: waiting for i/o request (write thread) I/O thread 7 state: waiting for i/o request (write thread) I/O thread 8 state: waiting for i/o request (write thread) I/O thread 9 state: waiting for i/o request (write thread)

可以看到IO Thread 0为insert buffer thread,IO Thread 1为log thread。之后根据参数innodb_read_io_threadsinnodb_write_io_threads来设置读写线程,并且读线程ID总是小于写线程。

Purge Thread

事务被提交后,其所使用的undolog可能不再需要,Purge Thread负责回收undo页。在InnoDB1.1版本之前,purge操作仅在Master Thread中完成。InnoDB1.1开始,purge操作可以独立在Purge Thread中进行。通过如下配置来启用独立的Purge Thread:

innodb_purge_threads=1

InnoDB1.2版本开始支持多个Purge Thread,加快undo页的回收。由于是离散地读取undo页,也能更进一步利用磁盘的随机读取性能。

Page Cleaner Thread

InnoDB1.2版本引入了Page Cleaner Thread。作用是将脏页刷新操作都放到单独的线程中来完成,从而减轻Master Thread的工作。

InnoDB缓冲池

InnoDB引擎是基于磁盘存储的,将数据记录按照页的方式进行管理。对数据库页的修改操作,首页修改缓冲池中的页,然后再按照某种频率刷新到磁盘上,这种频率的控制是通过一种称为Checkpoint的机制来实现。缓冲池的大小直接影响到数据库的整体性能,其通过参数innodb_buffer_pool_size来设置,额外内存池通过参数innodb_additional_mem_pool_size来设置。

InnoDB缓冲池包含的数据页类型有:索引页,数据页,undo页,插入缓冲(insert buffer),自适应哈希索引,InnoDB存储的锁信息,数据字典信息等。结构图如下:

技术分享

InnoDB1.0.X版本开始,允许有多个缓冲池实现。page根据哈希平均分配到不同的缓冲池实例中,用来减少资源竞争,提高并发。可以通过参数innodb_buffer_pool_instances进行配置。

InnoDB体系构架

标签:

热心网友 时间:2022-04-30 04:55

Mysql架构图


Inodb存储引擎结构图

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在家里用空调买什么比较好,变频空调好吗! 公司不承认劳动关系,我找了两个证人 ,证明材料也有,还盖了手印的,但是... ...一直到现在也没签劳动合同,现公司要辞退我们,请问我们可以得到什么赔... 2002年9月10号早上6.7点钟出生的女子命运如何 我是86年12月4日出生的大概6.7点时候麻烦帮我看看我的婚姻事业 有美国绿卡,在其他国家工作,还需要给美国交税吗? 我是中国国籍,在日本就职,公司想派我回上海分公司短期帮忙,会有签证... 上海职工在日本取得的补贴收入要在上海交个税吗? 王楚钦底板配置套胶 乒乓球器材基础知识|底板|套胶|胶水|常见问题 用微信开自动续费会员但是微信里显示这个会员的自动续费是关闭的,到期还会在微信扣钱吗? 用微信购买会员时勾了自动续费但是微信和续费平台里都显示自动续费已关闭,下个月会不会扣费? 医疗整形美容机构的资质在什么地方查看 石家庄医疗美容整形? 用微信开自动续费会员但是微信里显示这个会员的自动续费是关闭的,到期还会在微信扣钱吗?_百度问一问 视频帧率高或低有什么区别 视频的SWF帧率和视频帧率是什么意思,请分别解释一下。并说明两者的关系 健康养生的十大粗粮有哪几种? 用c语言编程简单的加减乘除以及混合运算的计算器 什么是视频帧率?视频编码?音频编码?视频编码?音频编码? 请问"视频帧率"是什么意思? c语言模拟计算器四则混合运算 珈莉娅刀剪研磨技术(天津)有限公司怎么样? vivoy5s 换屏幕多少钱? y5s主板坏了,换一个要多少钱? 小偷和师傅读后感悟 今年5.1号怎么放假??? 谁能给我个office 2003 的安装包 或解压软件呀 急用 office word2003那种电脑自带的版本安装包,有的发 vivoy5s内屏多少钱? ntoskrnl.exe蓝屏怎么办,网上的 chkdsk c: /f 后回车也没用,换系统还是这个,求大神指教!!! 315期间指的是什么时间到什么时间? 315打假日是农历还是阳历? 315是什么节日打假 蓝屏ntoskrnl.exe怎么破,dump文件如下 ,开机就蓝屏一次,使用中也会蓝屏,急死人 315打假日是怎么来的 求各种华语乐坛歌手各种好听的歌 ntoskrnl.exe驱动导致蓝屏怎么解决 315国际消费者权益日是哪年确定的? 今年315阴历是那1天 315打假日的来历是什么? 315打假是什么意思,求大神详细说一下 0既不是正数也不是负数 这句话对吗?拜托了各位 谢谢 捕鼠笼从那里批发便宜? 亲,你是住在北京吗?哪里有卖捕鼠笼的?我家现在有老鼠,我都吓死了 亚博乔丹这么强悍,为何买下黄蜂后,却一直是鱼腩球队? 江苏捕鼠笼厂家哪里有? 金甲战士的全集目录 金甲战士分别在第几集使用什么之力 金甲战士的变异人登场集数