加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

你居然还不知道MySQL存储引擎InnoDB分为内存架构

发布时间:2021-03-13 11:09:02 所属栏目:动态 来源:互联网
导读:oDB内存架构 InnoDB在内存中主要包括下面几个部分:缓冲池、Change缓冲区、自适应哈希索引、Log缓冲区 【一】缓冲池 简介: 存储访问时的缓存表和索引数据。在专用服务器上,通常会为缓冲池分配80%的物理内存 作用: 可以快速从内存获取数据,加快了处理速度

oDB内存架构

InnoDB在内存中主要包括下面几个部分:缓冲池、Change缓冲区、自适应哈希索引、Log缓冲区

【一】缓冲池

简介: 存储访问时的缓存表和索引数据。在专用服务器上,通常会为缓冲池分配80%的物理内存

作用: 可以快速从内存获取数据,加快了处理速度。

技术要点:

Page:为了high-volume的读取效率,缓冲池进一步被分为页的结构。

LRU:为了缓存的管理效率,缓冲池实现page间的链表,使用LRU算法。缓冲池使用调整后的LRU(最近最少使用)算法,当需求添加新的page时,最近最少使用的page被清除,同时新页面被添加到链表的中间部分

这种中间点插入的策略,把链表分为两个子链表

  • 头部:最近被访问过的“年轻”页
  • 尾部:最近被访问的old page

这样使新子列表中保存更重要的page,旧子列表包含较少使用的page,这部分page是被清除的候选page


 

同于聚簇索引,二级索引通常不唯一,同时二级索引的插入相对随机。

同时,为了避免频繁的IO随机读写,当更新和删除操作时,并不会立即写入磁盘,而是会选择系统空闲时定期进行写入磁盘的操作。Change Buffer在内存中,是缓冲池中的一部分,在磁盘中,是系统表空间的一部分。

【三】自适应哈希索引

简介: InnoDB可以基于搜索的模式,使用索引键前缀构建哈希索引,也就是说,这个哈希索引是由经常访问的索引页面构建的。

作用: 在不牺牲事务特性和可靠性的基础上,使InnoDB像一个内存数据库一样工作,也就是说在一定情况下,通过这种哈希索引的方式会提升查询速度。InnoDB中存在一种监视索引搜索的机制,但这种机制有时反倒带来额外的开销。所以在选择是否使用哈希索引前,可能需要做好基准测试,否则还是建议禁用。

InnoDB磁盘架构

通过上面的整体架构图可以看到,InnoDB在磁盘中存储的信息包括:各种表空间(TableSpace),Redo Log。

InnoDB对数据存储方式的设计,主要是基于表空间的形式。表空间的种类如下图所示:

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!