OLTP(On-Line Transaction Processing):联机事务处理,是传统关系型数据库的主要应用,主要是基本的日常的事务处理。
OLAP(On-Line Analytical Processing):联机分析处理,是数据仓库系统的主要应用,支持复杂的分 析操作,侧重决策支持, 并且提供直观易懂的查询结果。
InnoDB存储引擎
事务安全型存储引擎。
InnoDB存储引擎体系架构:
可认为内存块组成内存池,负责以下工作:
维护所有进程/线程需要访问的内部数据结构。
缓存数据,方便读取。
重做日志缓冲。
后台线程主要负责刷新内存池数据。
后台线程
InnoDB为多线程模型。
Master Thread:核心线程,负责将缓冲池中的数据异步刷新到磁盘,保证数据一致性。
IO Thread:write、read、insert buffer、log IO thread。
Purge Thread:回收已使用并分配的undo页。
Page Cleaner Thread。
缓冲池
缓冲池中缓存的数据页类型有索引页、数据页等。如下图,
缓冲池管理:LRU List、Free List和Flush List- Checkpoint技术
解决以下问题:
缩短数据库回复时间。
缓冲池不够用时将脏页刷新到磁盘。
重做日志不可用时,刷新脏页。
两种Checkpoint
Sharp Checkpoint:发生在数据库关闭时,将脏页(即数据变化的页)刷新回磁盘。
Fuzzy Checkpoint:在数据库运行时刷新部分脏页。 - Master Thread工作方式
一秒和十秒 - InnoDB关键特性:
插入缓冲
两次写
自适应哈希索引
异步IO
刷新邻接页
以上引自《MySQL技术内幕:InnoDB存储引擎》