Mysql深入浅出之架构

概述

这里写图片描述

线程模型

  • Master Thread
    Master Thread是一个非常核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲(INSERT BUFFER)、UNDO页的回收等。

每秒一次的操作包括:

  • IO Thread
    被存储引擎使用。innodb使用AIO模型(也就是NIO2)。
    这里写图片描述

  • Purge Thread
    事务被提交后用于回收undo页面。

存储引擎

innodb

一、Innodb有两种管理表空间的方法
+ 独立表空间:每一张表都会生成独立的文件来进行存储,每一张表都有一个.frm表描述文件,和一个.ibd文件。其中ibd文件包括了单独一个表的数据内容和索引内容。
+ 共享表空间:某一个数据库的所有表的数据和索引文件都放在一个文件下,默认的文件是.ibdata1文件,初始值是10M,默认是存放在数据文件的根目录下(mysql/var)。

二、两阶段锁定协议

物理存储

  • .frm 与数据库引擎无关,都有这么个与表名同名文件。存储表的结构
  • .myd 即 my data,表数据文件(MyISAM)
  • .myi 即my index,索引文件(MyISAM)
  • ibdata1 即表空间文件。(innodb)
  • .ibd
  • .log 日志文件。

猜你喜欢

转载自blog.csdn.net/define_us/article/details/80847893
今日推荐