MySQL  - 讨论区

标题:MySQL 5.6 新特性之 缓存数据的dump和load

2013年11月27日 星期三 09:27

之前,当MySQL服务重启之后,InnoDB的Buffer Pool是空荡荡的,没有任何数据被缓存,此时任何增删改查的操作都会比较慢,如果有一大波请求过来,可能会造成MySQL数据库积累大量连接,甚至无法响应。所以,当年有一个概念叫做数据库“预热”,操作相当麻烦。

后来社区提出了新的想法,基本概念就是当MySQL在Shutdown时,会将Buffer Pool里面的缓存信息保存到本地磁盘一个文件中(保存的内容是缓存对应的磁盘block偏移量,而不是缓存的内容,所以这个文件很小),当MySQL服务启动时,会根据这个文件重新加载缓存内容,然后才开始接受请求,这样就不会有上述的问题出现了。

Percona发行的5.5版本的XtraDB数据库就包含了上述特性。

后来MySQL官方发行5.6.3版本,吸收了这个新的想法,增加了几个与此相关的参数:

1,innodb_buffer_pool_dump_at_shutdown

2,innodb_buffer_pool_load_at_startup

3,innodb_buffer_pool_load_now

4,innodb_buffer_pool_filename

5,innodb_buffer_pool_dump_now

6,innodb_buffer_pool_load_abort

以上几个参数的意义顾名思义即可,另外还有两个status参数可以用查看dump或者load的进展情况:

1,Innodb_buffer_pool_dump_status

2,Innodb_buffer_pool_load_status

根据我的实践,这个特性确实很有意义,数据库重启之后,可以迅速恢复活力。

更多有关讲解请参考官方文档:

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号