zoukankan      html  css  js  c++  java
  • mysql之innodb_buffer_pool

    mysql 重启之后,innodb_buffer_pool几乎是空的,没有任何的缓存数据。随着sql语句的执行,table中的数据以及index 逐渐被填充到buffer pool里面,之后的查询语句只需要在内存中操作(理想状态下),大幅度提升了mysql的性能。 这个逐渐填充的过程可能需要1-2个小时,甚至更久也说不准。此时使用的是 FREE链表

    然后在buffer pool 里使用 LRU 链表,通过最近最少使用算法区分热数据(yong)和冷数据(old). 其中old 默认占整个链表大小的3/8.

    可以通过innodb_old_blocks_pct 修改默认值.

    mysql> show variables like '%buffer_pool%' ;
    +-------------------------------------+----------------+
    | Variable_name | Value |
    +-------------------------------------+----------------+
    | innodb_buffer_pool_chunk_size | 134217728 |
    | innodb_buffer_pool_dump_at_shutdown | ON |
    | innodb_buffer_pool_dump_now | OFF |
    | innodb_buffer_pool_dump_pct | 25 |
    | innodb_buffer_pool_filename | ib_buffer_pool |
    | innodb_buffer_pool_instances | 1 |
    | innodb_buffer_pool_load_abort | OFF |
    | innodb_buffer_pool_load_at_startup | ON |
    | innodb_buffer_pool_load_now | OFF |
    | innodb_buffer_pool_size | 134217728 |
    +-------------------------------------+----------------+

    手工导出的话,可以用这个命令:

    mysql> SET innodb_buffer_pool_dump_now=ON;

    然后mysql会在innodb的数据目录中生成一个文件:ib_buffer_pool

    关闭mysql的时候,自动导出:

    mysql> SET innodb_buffer_pool_dump_at_shutdown=ON;

    FLUSH 链表 负责将内存中修改的数据,还没落盘的,脏数据刷入FLU链表.

  • 相关阅读:
    windows注册服务
    比特币用户阶层和开发阶层之间的恩怨情仇
    陷门函数Trapdoor Function
    什么是混币、环签名、同态加密、零知识证明
    环签名:打开匿名的大门
    一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
    firefox浏览器不能使用window.close的解决方案
    Swift编程语言资料合集
    程序员的十大烦恼
    Net上传附件大小控控值(转)
  • 原文地址:https://www.cnblogs.com/vzhangxk/p/15390650.html
Copyright © 2011-2022 走看看