zoukankan      html  css  js  c++  java
  • MySql优化记录【innodb_buffer_pool_size】、【innodb_buffer_pool_instances】、【innodb_buffer_pool_chunk_size】

    一、【innodb_buffer_pool_size】

      对于InnoDB表来说,innodb_buffer_pool_size的作用就相当于key_buffer_size对于MyISAM表的作用一样。InnoDB使用该参数指定大小的内存来缓冲数据和索引。对于单独的MySQL数据库服务器,最大可以把该值设置成物理内存的80%。
    根据MySQL手册,对于2G内存的机器,推荐值是1G(50%)。

     重点是50%这个参数,配置的方式如下:

     在my.ini里增加

    innodb_buffer_pool_size=2G
    如下图:

    、【innodb_buffer_pool_instances】

      这个参数能较好的运行于多核处理器,支持使用 此参数对服务器变量建立多个缓冲池实例,每个缓冲池实例分别自我管理空闲列表、列表刷写、LRU以及其它跟缓冲池相关的数据结构,并通过各自的互斥锁进行保护。

      在这个文章里测试后的结论是:4G内存的电脑 ,配置成1比较好  参考网址: https://blog.csdn.net/qing_gee/article/details/42742241

      在另外一个文章里,说是配置成CPU的核心数比较好,参考网址:https://www.jianshu.com/p/f84fe0979cdf

      摘抄如下:

    pool_instances 可以设置为cpu核心数,它的作用是:对于缓冲池在数千兆字节范围内的系统,通过减少争用不同线程对缓存页面进行读写的争用,将缓冲池划分为多个单独的实例可以提高并发性。
    可以类比为 java中的ThreadLocal 线程本地变量 就是为每个线程维护一个buffer pool实例,这样就不用去争用同一个实例了。相当于减少高并发下mysql对INNODB_BUFFER缓冲池的争用。

    三、【innodb_buffer_pool_chunk_size】

      innodb_buffer_pool_size必须始终等于innodb_buffer_pool_chunk_size或 innodb_buffer_pool_instances的倍数。如果将缓冲池大小更改为不等于innodb_buffer_pool_chunk_size 或 innodb_buffer_pool_instances的倍数,则缓冲池大小将自动调整为等于innodb_buffer_pool_chunk_size 或 innodb_buffer_pool_instances的倍数。
      上面是官方文档上的内容翻译后的结果,所以本次就把innodb_buffer_pool_chunk_size配置成和innodb_buffer_pool_size一样吧。

    四、【实操后的总结】

      我按上面的建议,设置完innodb_buffer_pool_size参数以后,速度提升很大【我是4G的内存,就把innodb_buffer_pool_size和innodb_buffer_pool_chunk_size 设置成了2G】。另外:innodb_buffer_pool_instances这个参数我设置成了1,没有明显变化。

  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/wjx-blog/p/15213630.html
Copyright © 2011-2022 走看看