zoukankan      html  css  js  c++  java
  • 初识InnoDB体系架构和逻辑存储结构

    InnoDB体系简要架构如图所示,由后台线程和内存池组成。InnoDB存储引擎是多线程的模型,后台线程包括:

    • Master Thread:主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性。
    • IO Thread:负责写IO请求的回调处理。
    • Purge Thread:回收已经使用并分配的undo页。
    • Page Cleaner Thread:将之前版本中脏页的刷新打偶放到单独的线程中来完成。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

      InnoDB存储引擎是基于磁盘存储的,将其中的记录按照页的方式进行管理。数据库系统通常使用缓冲池技术提高数据库的整体性能。缓冲池是一块内存区域, 在数据库中进行读取页的操作,首先将从磁盘读到的页存放到缓冲池中;对于数据库中页的修改操作,首先修改在缓冲池的页,然后通过Checkpoint的机制刷新回磁盘。缓冲池内存储的内容如图所示,数据页和索引页占据了很大空间。

    InnoDB逻辑存储结构

    存储引擎中所有数据都被存储在表空间中,表又由Segment(段)、Extent(区)、Page(页)组成。

    • 表空间:在默认情况下,InnoDB存储引擎有一个共享表空间 ibdata1,所有的数据都放在这个表空间内。
    • 段:常见的段有数据段、索引段、回滚段等。数据段是B+树的叶子结点,索引段为B+树的非索引结点。
    • 区:区由连续页组成,大小固定为1MB,一个区中有64个连续的页。
    • 页:页是InnoDB磁盘管理的最小单位也叫做块,默认大小为16kB。常见的页有数据页、undo页、系统页等。类型为B-tree Node的页存放的即是表中行的实际数据。
    • 行:InnoDB存储引擎中数据是按行进行存放的,每个页中最多存放7992行记录。

      -- 图片来源《MySQL技术内幕:InnoDB存储引擎》第二版

  • 相关阅读:
    15、事例十五:纹理映射
    14、事例十四:材质:十二个材质球
    [luogu]P1084 疫情控制
    [luogu]P2502 [HAOI2006]旅行
    [luogu]P2053 [SCOI2007]修车
    线性相关/线性基
    [luogu]P3629 [APIO2010]巡逻
    [luogu]P3623 [APIO2008]免费道路
    权值线段树
    树链剖分
  • 原文地址:https://www.cnblogs.com/fly-bryant/p/13191995.html
Copyright © 2011-2022 走看看