转自:http://blog.csdn.net/wyzxg/article/details/7700394

MySQL官网配置说明地址:http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html

其他参考:

《高性能MySQL》 - 8.4.5 InnoDB缓冲池

《MySQL技术内幕InnoDB存储引擎》(第二版内容有所更新) - 2.3 InnoDB体系结构

##############################################

书中是先对后台线程进行说明,然后对内存部分进行说明,这样更好理解innoDB引擎内存池在使用时的过程。

【后台线程】

InnoDB有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作:

维护所有进程/线程需要访问的多个内部数据结构。
缓存磁盘上的数据,方便快速的读取,并且在对磁盘文件的数据进行修改之前在这里缓存。
重做日志(redo log)缓冲。

后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外,将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常情况下InnoDB能恢复到正常运行状态。

默认情况下,InnoDB存储引擎的后台线程有7个,4个IO thread,1个master thread,1个锁(lock)监控线程,1个错误监控线程。IO thread的数量由配置文件中的innodb_file_io_threads参数控制,默认为4,可以通过show engine innodb status \G查看IO thread,例如:

更多相关文章

  1. mysql批量结束线程
  2. 创建线程时设置CPU关联
  3. Python爬虫系列(三)多线程爬取斗图网站(皮皮虾,我们上车)
  4. 我在Firefox中遇到内存泄漏或内存使用率高吗?
  5. 转载和积累系列 - Nodejs HTTP多线程
  6. AngularJS - 删除绑定以避免内存泄漏
  7. python 的多线程 调用input后 别的线程也不运行了
  8. Python是如何进行内存管理的
  9. python之内存概念

随机推荐

  1. JDK 1.8 中的日期与时间 API 一览
  2. Mybatis001-第一个Mybatis程序
  3. 新零售智能化升级:RPA+AI塑造客服数字化新
  4. 来吧,一起刷题!Inversion of Java Intervie
  5. 拆分示例,补个思维导图
  6. MySQL 单表上亿,怎么优化分页查询?
  7. MySQL如何配置读写分离?
  8. 分库分表怎么配?
  9. 解答、收录了 8 道 MyBatis 的题目
  10. 又梳理了 23 道 MyBatis 的题