mysql 5.6 后热数据的加载

转自:http://blog.itpub.net/20892230/viewspace-2127469/

故障现象:在数据库重启后,碰巧遇到业务高峰期,连接数满,导致用户登录一直等待,此时数据库处于无响应状态.

故障分析:当数据库重启后,在数据库buffer中的热数据需要innodb本身去预热.如果buffer太大,依靠innodb自己去预热,将会有很长一个周期才能实现.此时热数据就需要到磁盘去寻找,就给磁盘的I/O带来很大的压力.遇到瓶颈,就会一直等待,导致数据无响应.

解决方法:5.6版本之前,重启mysql后,手工把热数据加载到buffer里面去.如:select count(*) from table_name(热数据表);

5.6版本之后,提供了一个新特性来快速预热buffer_pool缓冲池.在my.cnf里面加入几个参数:#innodb_buffer_pool_load_at_startup = on    默认为关闭OFF。如果开启该参数,启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中。
#innodb_buffer_pool_load_now =off   默认为关闭OFF。以手动方式加载到InnoDB缓存池中。
#innodb_buffer_pool_filename =ib_buffer_pool  如果开启InnoDB预热功能,停止MySQL服务时,MySQL将InnoDB缓冲池中的热数据保存到数据库根目录中,默认文件名ib_buffer_pool.
#innodb_buffer_pool_load_aborr =off  默认为关闭OFF。如果开启该参数,即便开启InnoDB预热功能, MySQL也不会将本地硬盘的热数据加载到InnoDB缓冲池中。 
innodb_buffer_pool_dump_at_shutdown=on #5.7.7以后默认就是on,在数据库关闭的时候,将热数据刷新到磁盘
#innodb_buffer_pool_dump_now = off 默认为off,手动将innodb缓冲池中的热数据导出到磁盘;
#innodb_buffer_pool_dump_pct = 40   默认为关闭OFF。如果开启该参数,停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据的百分比保存到本地硬盘,5.7.6以前是100,5.7.7开始是25,也就是保存缓存中的25%热数据。

特别说明的是innodb_buffer_pool_load_now和innodb_buffer_pool_dump_now这两个参数是可以在命令行直接执行的,直接手工导入导出热数据,可以根据业务环境,自定义执行.如在执行的过程中可以直接执行 innodb_buffer_pool_load_aborr中止;
如: set global innodb_buffer_pool_load_now=1;--直接加载热数据;
     set global innodb_buffer_pool_load_aborr=1;---中止加载;

在关闭mysql时,会把内存中的热数据保存在磁盘的ib_buffer_pool文件中,该文件位于数据目录下.
ps:只有正常关闭mysql服务,或者pkill mysql时,才会把热数据导出到磁盘.机器宕机或者pkill -9 mysql,是不会导出的

mysql 5.6 后热数据的加载的更多相关文章

  1. JS实现-页面数据无限加载

    在手机端浏览网页时,经常使用一个功能,当我们浏览京东或者淘宝时,页面滑动到底部,我们看到数据自动加载到列表.之前并不知道这些功能是怎么实现的,于是自己在PC浏览器上模拟实现这样的功能.先看看浏览效果: ...

  2. 防止ViewPager和Fragment结合使用时候的数据预加载

    不知道你们使用ViewPager和Fragment结合的时候发现一个问题没,如果你的每个Fragment都需要请求网络数据,并且你在请求网络数据的时候会加入进度对话框的加载显示效果,当你显示第一个Fr ...

  3. JPA数据懒加载LAZY配合事务@Transactional使用(三)

    上篇博文<JPA数据懒加载LAZY和实时加载EAGER(二)>讲到,如果使用懒加载来调用关联数据,必须要保证主查询session(数据库连接会话)的生命周期没有结束,否则,你是无法抽取到数 ...

  4. Echarts使用及动态加载图表数据 折线图X轴数据动态加载

    Echarts简介 echarts,缩写来自Enterprise Charts,商业级数据图表,一个纯JavaScript的图表库,来自百度...我想应该够简洁了 使用Echarts 目前,就官网的文 ...

  5. Unity3d通用工具类之数据配置加载类

    今天,我们来讲讲游戏中的数据配置加载. 什么是游戏数据加载呢?一般来说游戏中会有场景地图. 按照国际惯例,先贴一张游戏场景的地图: 在这张地图上,我们可以看到有很多正六边形,正六边形上有树木.岩石等. ...

  6. Android学习笔记_36_ListView数据异步加载与AsyncTask

    一.界面布局文件: 1.加入sdcard写入和网络权限: <!-- 访问internet权限 --> <uses-permission android:name="andr ...

  7. Java 爬虫遇上数据异步加载,试试这两种办法!

    这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...

  8. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  9. 省市数据递归加载到TreeView

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

随机推荐

  1. linux命令系列

    Linux系统安装node linux安装rz sz命令:yum install lrzsz上传tar包:rz node-v10.15.0-linux-x64.tar.xz将tar包移到上一级目录下: ...

  2. easyUI datagrid中checkbox选中事件以及行点击事件,翻页之后还可以选中

    DataGrid其中与选择,勾选相关 DataGrid属性:singleSelect boolean 如果为true,则只允许选择一行. false ctrlSelect boolean 在启用多行选 ...

  3. Latex的beamer幻灯片图形不编号的问题

    在beamer幻灯片中如果插入图形,一般不会显示图形编号,这是其默认模式,但我们可以通过设置给图形编号.解决办法是: 在导言区加上命令: \setbeamertemplate{caption}[num ...

  4. 使用redis时遇到的问题及解决方法

    最近在向redis中写入数据的时候,报了下面的错误: failed opening the rdb file crontab (in server root dir /etc) for saving ...

  5. ant DatePicker 中文

    方式一:局部设置 import 'moment/locale/zh-cn'; import locale from 'antd/lib/date-picker/locale/zh_CN'; //调用时 ...

  6. php的core问题

    我们在编写代码的时候,可能会发现,路径下多了一个类似这样的文件, 拿php举例  :  core.php_bin.4528.1379650721 这是因为我们在编写代码时候,出现了指针溢出,段错误等问 ...

  7. javascript之DOM(Document Object Model) 文档对象模型

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  8. JavaScript中的bind,call和apply函数的用法和区别

    一直没怎么使用过JavaScript中的bind,call和apply, 今天看到一篇比较好的文章,觉得讲的比较透彻,所以记录和总结如下 首先要理解的第一个概念,JavaScript中函数调用的方式, ...

  9. openstack核心组件--keystone(1)

    一.keystone介绍 keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证.令牌的发放和校验.服务列表.用户权限的定义等等 ...

  10. Returning array from function in C

    以下为了通俗易懂,使用意译. I've here very intersting discussion about the best and common ways to return an arra ...