Innodb学习(一)
InnoDB 后台线程 master thread io thread 4四种io线程类型:insert buffer thread,log thread,read thread,write thread innodb使用了大量异步io处理写io请求 io thread的工作是负责这些io请求的回调处理 purge thread 回收已使用的、不再需要的undo页 page cleaner thread 刷脏页 内存 缓存池 磁盘读到的页放入缓存池,下次读取相同页时先判断缓存中是否存在 页的修改,先修改缓存池中的页,再以一定频率刷回磁盘。不是每次页更新时就刷盘,而是通过checkpoint机制 缓存的数据页类型 索引页,数据页,undo页,insert buffer,自适应哈希索引,锁信息,数据字典信息 内存区域的管理 LRU List:lru算法,midpoint,最近访问的页放入到lru列表的midpoint位置,默认是lru列表的5/8处 为啥不用朴素lru算法? 防止某些sql操作可能会使缓存池中的页被刷出lru列表,影响缓存池效率。 如索引或数据的扫描操作。这些扫描到的页通常仅在一次查询中需要,不是活跃的热点数据 unzip_LRU列表 伙伴算法 Free List: Flush List redo log_buffer redo日志信息先放在这里