MySQL InnoDB存储引擎原理与缓存组件参数优化

本文介绍了MySQL InnoDB存储引擎的结构,包括内存池、后台线程和存储文件。详细讨论了缓冲池的LRU算法、缓冲池参数如innodb_buffer_pool_size,以及重做日志缓冲池。同时,阐述了InnoDB的后台线程如Master Thread、IO Thread、Purge Thread和Page Cleaner Thread的功能。还讲解了InnoDB的插入缓冲、两次写和自适应哈希索引等关键特性。最后,文章探讨了CheckPoint在确保数据持久性和优化数据库恢复时间方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

InnoDB结构

内存池

后台线程

存储文件

InnoDB原理

InnoDB关键特性

CheckPoint


InnoDB结构

InnoDB主要包括了内存池、后台线程以及存储文件三部分。

内存池

数据库直接操作磁盘进行读写数据,会带来一定的性能瓶颈,缓冲池是为了提高数据库的读写性能。数据库中读取数据时,如果缓冲池有数据,就读缓冲池,如果没有就去磁盘读取,对于修改操作,先修改缓冲池中的数据,然后通过Master Thread线程刷新到磁盘上。

缓冲池中缓存的数据页类型

索引页、数据页、 undo 页、插入缓冲(insert buffer)、自适应哈希索引(adaptive hash index)、 InnoDB存储的锁信息(lock info)、数据字典信息(data dictionary)等。索引页和数据页占缓冲池的很大一部分。InnoDB缓冲池中的页大小默认为16KB。

LUR算法

缓冲池是通过LRU(Latest Recent Used,最近最少使用)算法来进行管理的,即最频繁使用的页在LRU列表的最前段,最少使用的页在LRU列表的尾端,当缓冲池不能存放新读取的页时,首先释放LRU列表尾端的页。

缓冲池(bu

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆驼整理说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值