美文网首页MySQL
InnoDB 缓冲池

InnoDB 缓冲池

作者: mashen | 来源:发表于2017-08-01 16:09 被阅读0次

    InnoDB 缓冲池

    InnoDB 维护一个称为缓冲池的存储区域, 用于缓存内存中的数据和索引
    缓冲池的大小当然是越大越好 (为服务器上的其他进程留下足够的内存)

    InnoDB 已块的形式存储缓存 通过以下参数配置缓存大小

    // 查看总缓存大小
    show global variables like 'innodb_buffer_pool_size';
    
    //   查看每个缓存池的大小
    show global variables like 'innodb_buffer_pool_chunk_size';
    
    // 缓存池的数量
    show global variables like 'innodb_buffer_pool_instances';
    

    总缓存大小必须是 ( 每个缓存池的大小 * 缓存池的数量 ) 的倍数
    当设置的innodb_buffer_pool_size不是 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances倍数时 那么mysql会自动调整 innodb_buffer_pool_size 的大小 ( 向上取值到 最近的一次倍数 )

    # 如
    innodb_buffer_pool_size = 9G
    innodb_buffer_pool_chunk_size = 128M
    innodb_buffer_pool_instances = 16
    
    128*16 = 2048M 
    那么 9G 不是 2048M 的倍数 则 innodb_buffer_pool_size 自动向上取最近的一个为2048M倍数的值 10G 
    

    设置缓存池大小

    动态设置
    SET GLOBAL innodb_buffer_pool_size = 402653184;
    
    # 配置文件
    [mysqld]
    innodb_buffer_pool_size = 134217728
    

    配置多个缓冲池
    将缓冲池划分为多个单独的实例,通过减少不同线程读取和写入缓存的争用来提高并发性
    此功能通常适用于千兆范围内的系统
    innodb_buffer_pool_instances 默认值为 1
    调整参数 将 innodb_buffer_pool_instances 最大可设置为64个
    将每个缓存池的大小至少分配到1G或更高


    MySQL 5.7 参考手册 - InnoDB缓存池

    相关文章

      网友评论

        本文标题:InnoDB 缓冲池

        本文链接:https://www.haomeiwen.com/subject/khejlxtx.html