目录
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列表尾端的页。
缓冲池(buffer pool)
本文介绍了MySQL InnoDB存储引擎的结构,包括内存池、后台线程和存储文件。详细讨论了缓冲池的LRU算法、缓冲池参数如innodb_buffer_pool_size,以及重做日志缓冲池。同时,阐述了InnoDB的后台线程如Master Thread、IO Thread、Purge Thread和Page Cleaner Thread的功能。还讲解了InnoDB的插入缓冲、两次写和自适应哈希索引等关键特性。最后,文章探讨了CheckPoint在确保数据持久性和优化数据库恢复时间方面的作用。
订阅专栏 解锁全文
1260

被折叠的 条评论
为什么被折叠?



