mysql5.7配置innodb_MySQL_5.7新特性innodb-buffer-pool-size配置

MySQL_5.7升级之后在配置上及性能优化上做了很大的处理了,我们会发现有一个innodb-buffer-pool-size了,那么这个innodb-buffer-pool-size如何配置会比较好呢,下面来看看吧。

这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲

默认值:128M

专用mysql服务器设置的大小: 操作系统内存的70%-80%最佳。

MySQL 5.7.5后Innodb_buffer_pool_size一方面可以动态分配。但另一方面也引入了一个新特性。 bp分配必须是innodb_buffer_pool_chunk_size的倍数。同时最好是:

innodb_buffer_pool_chunk_size*innodb_buffer_pool_instances.

innodb_buffer_pool_chunk_size默认是128M.

当Innodb_buffer_pool_size分配小于innodb_buffer_pool_chunk_size时,innodb_buffer_pool_chunk_size收缩到等于innodb_buffer_pool_size/innodb_buffer_pool_instances.

当于innodb_buffer_pool_size 大于innodb_buffer_pool_chunk_size时,innodb_buffer_pool_chunk_size自动取innodb_buffer_pool_chunk_size的倍数从而获取更好的性能。

所以于MySQL5.7.5对于Buffer的分配需要提前计算一下。 尽量让 innodb_buffer_pool_size = innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances 从而获取一个较佳的性能。

设置方法:

my.cnf文件

innodb_buffer_pool_size = 6G

此外,这个参数是非动态的,要修改这个值,需要重启mysqld服务。

所以设置的时候要非常谨慎。

并不是设置的越大越好。设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。

例子

 代码如下 复制代码

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_data';

------------------------------- -------

| Variable_name                 | Value |

------------------------------- -------

| Innodb_buffer_pool_pages_data | 1388  |

------------------------------- -------

1 row in set (0.00 sec)

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total';

-------------------------------- --------

| Variable_name                  | Value  |

-------------------------------- --------

| Innodb_buffer_pool_pages_total | 131071 |

-------------------------------- --------

1 row in set (0.00 sec)

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_page_size';

------------------ -------

| Variable_name    | Value |

------------------ -------

| Innodb_page_size | 16384 |

------------------ -------

1 row in set (0.00 sec)

'Innodb_buffer_pool_pages_data' X 100 / 'Innodb_buffer_pool_pages_total'

当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用 ram total 75%

当结果 < 95% 则减少 innodb_buffer_pool_size,

建议 'Innodb_buffer_pool_pages_data' X 'Innodb_page_size' X 1.05 / (1024*1024*1024)

你可能感兴趣的:(mysql5.7配置innodb_MySQL_5.7新特性innodb-buffer-pool-size配置)