zoukankan      html  css  js  c++  java
  • mysql-5.7 saving and restore buffer pool state 详解

    一、mysql 重启要面临的问题

      由于重启后之前innodb buffer pool中缓存的数据就都没有了,如果这个时候业务SQL来临,mysql就只能是从磁盘中

      读取数据到内存;可能要经过数个小时的时间内存中的数据才能是业务频繁要用的。行业中把这个内存从什么都没有

      到内存中都是热数据的这个过程叫作预热。可见在预热这个过程中数据库的性能是不怎么好的,对于内存(innodb buffer pool)

      越大的库预热的时间就越长

    二、解决问题的思路

      说起来这个解决方法也是简单粗暴,方法就是mysql在正常关闭时把当前内存中页面信息(tableSpaceId,pageId),保存到磁盘;

      等到mysql启动的时候就根据之前保存的信息把磁盘中的数据加载到innodb buffer pool;

    三、如何配置:

      前面讲解“解决问题的思路”的时候,提到了两个过程一个是关闭时保存,一下个启动时恢复,这个两过程各自对应着一个配置

      参数,还有一个参数就是用来控制innodb buffer pool中那些页面要被“保存”,“恢复” 这个是通过一个百分比控制的,这个也

      对应着一个参数

    [mysqld]
    #--------innodb buffer pool state
    innodb_buffer_pool_dump_pct                     =25                         #指定innodb buffer pool 中要被保存|恢复的页面的百分比 
    innodb_buffer_pool_dump_at_shutdown             =ON                         #指定是否启动关闭时保存信息这个工能
    innodb_buffer_pool_load_at_startup              =ON                         #指定是否启用启动时恢复这个功能

    四、对innodb_buffer_pool_dump_pct 的说明:

      innodb buffer pool 内部是由列表组织的,配置成25就是说列表中前面的那25%的页面要在关闭时保存它们的元信息(tablespaceid,pageid)

      这个的“前”是指的innodb buffer pool中的new 列表;关于innodb buffer pool的列表组织方式可以看我的另一个博客

      http://www.cnblogs.com/JiangLe/p/7392421.html

       

    ----

    学习交流

  • 相关阅读:
    来一个炫酷的导航条
    jQuery实现瀑布流
    js计时事件
    js浏览器对象的属性和方法
    js对象(一)
    CSS3常用选择器(三)
    软工实践个人总结
    第05组 每周小结 (3/3)
    第05组 每周小结 (2/3)
    第05组 每周小结 (1/3)
  • 原文地址:https://www.cnblogs.com/JiangLe/p/7501464.html
Copyright © 2011-2022 走看看