一、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

   

----

学习交流

mysql-5.7 saving and restore buffer pool state 详解的更多相关文章

  1. mysql 5.7.12 新增 X plugin x 协议 详解

    mysql 5.7.12 新增 X plugin  x 协议 详解http://xiaozhong991.blog.51cto.com/2354914/1763792 x 协议  操作nosql数据库 ...

  2. MySQL对数据库数据进行复制的基本过程详解

    MySQL对数据库数据进行复制的基本过程详解 这篇文章主要介绍了MySQL对数据库数据进行复制的基本过程,解读了Slave的一些相关配置,需要的朋友可以参考下 复制 复制是从一个MySQL服务器(ma ...

  3. Python 多进程 multiprocessing.Pool类详解

    Python 多进程 multiprocessing.Pool类详解 https://blog.csdn.net/SeeTheWorld518/article/details/49639651

  4. 【MySQL】InnoDB 内存管理机制 --- Buffer Pool

    InnoDB Buffer Pool 是一块连续的内存,用来存储访问过的数据页面 innodb_buffer_pool_size 参数用来定义 innodb 的 buffer pool 的大小 是 M ...

  5. 【docker-compose】使用docker-compose部署运行spring boot+mysql 【处理容器的时区问题】【详解】【福利:使用docker-compose构建 wordpress+mysql】

    ==================================================================================================== ...

  6. mysql服务性能优化 my.cnf my.ini配置说明详解(16G内存)

    sort_buffer_size,join_buffer_size,read_buffer_size参数对应的分配内存也是每个连接独享 这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话, ...

  7. Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  8. [转]Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  9. mysql主从复制搭建中几种log和pos详解

    一.主从原理 Replication 线程   Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql in ...

随机推荐

  1. ComboBoxEdit 数据绑定 使用模板

    1)定义模板资源 <UserControl.Resources> <local:StatusConvertor x:Key="StatusConvertor"&g ...

  2. C++学习笔记12-模板1

     1.  函数模板 函数模板是一个独立于类型的函数,可作为一种方式.产生函数的特定类型版本号. // implement strcmp-like generic compare function // ...

  3. shell命令xargs解析

    1.多行变成单行 -bash-3.2# cat test.txt a b c d e f g o p q -bash-3.2# cat test.txt |xargs a b c d e f g o  ...

  4. 【Linux】Linux 文件中^M字符处理

    当我们把文件从Windows传到Linux环境时候,常常在每一行的末尾,会出现一些 ^M的字符.而这些字符会影响文件的正常读写和执行; 要去掉这些'^M'字符,有很多种办法,比如直接dox2unix, ...

  5. wepy - 安装less/sass

    关于sass\less,在wepy文档里寻找 演示安装,默认已经安装了less,我们需要安装的是scss 安装less或scss yarn yarn add wepy-compiler-sass np ...

  6. interllij13新建maven web工程

    1. 打开intellij,左边的可以别管它(历史) ②选择create new project(新建一个项目),选择Maven,并选择一个web模板,然后next. 3. 给自己的项目取名,grou ...

  7. Install-DedupCore.component 的内容

    [amd64_microsoft-windows-dedup-common_31bf3856ad364e35_6.3.9600.16384_none_24924b7b049f1064] CF=0000 ...

  8. 算法笔记_207:第五届蓝桥杯软件类决赛部分真题(Java语言C组)

    目录 1 数字拆分 2 稍大的串   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 数字拆分 正整数可以表示为若干正整数的累加和. 如,对于正整数n=6,可以分划为: 6 5+1 4+2 4+1+ ...

  9. Linux rpm安装MySQL

    1:查看操作系统信息 ##uname -a : 准备软件包: MySQL-server-5.6.19-1.rhel5.x86_64.rpm MySQL-devel-5.6.19-1.rhel5.x86 ...

  10. cordova 命令行打包apk

    Cordova 打包 Android release app 过程详解: 1.全局安装Cordova CLI: npm install -g cordova 2.创建项目: cordova creat ...