个人随笔
目录
mysql参数之innodb_buffer_pool_size大小设置
2019-02-18 23:10:58

一、什么是INNODB BUFFER POOL

计算机使用它们的大部分内存来提升对经常访问的数据的性能。这就是我们所知的缓存,是系统的一个非常重要的组成部分,因为访问硬盘的数据可能会慢到100到100000倍,这取决你访问的数据量。
MyISAM是使用操作系统的文件系统缓存来缓存那些经常被查询的数据。然而InnoDB使用的是一种非常不同的方法。不依赖操作系统的缓存,InnoDB自己在InnoDB Buffer Pool处理缓存

二、InnoDB缓冲池作用

  • 数据缓存 – 这绝对是它的最重要的目的
  • 索引缓存 – 这使用是的同一个缓冲池
  • 缓冲 – 更改的数据(通常称为脏数据)在被刷新到硬盘之前先存放到缓冲
  • 存储内部结构 – 一些结构如自适应哈希索引或者行锁也都存储在InnoDB缓冲池
  1. mysql> show global variables like 'innodb_buffer_pool_size';
  2. +-------------------------+-----------+
  3. | Variable_name | Value |
  4. +-------------------------+-----------+
  5. | innodb_buffer_pool_size | 134217728 |
  6. +-------------------------+-----------+
  7. 1 row in set (0.00 sec)

三、那么如何设置该参数大小呢?首先查看运行时buffer pool相关数据指标:

  1. mysql> show global status like 'Innodb_buffer_pool_pages_data';
  2. +-------------------------------+-------+
  3. | Variable_name | Value |
  4. +-------------------------------+-------+
  5. | Innodb_buffer_pool_pages_data | 314 |
  6. +-------------------------------+-------+
  7. 1 row in set (0.00 sec)
  8. mysql> show global status like 'Innodb_buffer_pool_pages_total';
  9. +--------------------------------+-------+
  10. | Variable_name | Value |
  11. +--------------------------------+-------+
  12. | Innodb_buffer_pool_pages_total | 8191 |
  13. +--------------------------------+-------+
  14. 1 row in set (0.00 sec)
  15. mysql> show global status like 'Innodb_page_size';
  16. +------------------+-------+
  17. | Variable_name | Value |
  18. +------------------+-------+
  19. | Innodb_page_size | 16384 |
  20. +------------------+-------+
  21. 1 row in set (0.00 sec)

上述三项指标的含义如下:

1、Innodb_buffer_pool_pages_data

The number of pages in the InnoDB buffer pool containing data. The number includes both dirty and
clean pages.

2、Innodb_buffer_pool_pages_total

The total size of the InnoDB buffer pool, in pages.

3、Innodb_page_size

InnoDB page size (default 16KB). Many values are counted in pages; the page size enables them to be
easily converted to bytes

五、设置方法

  1. 计算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100%
  2. 当结果 > 95% 则增加 innodb_buffer_pool_size 建议使用物理内存的 75%
  3. 当结果 < 95% 则减少 innodb_buffer_pool_size
  4. 建议设置大小为: Innodb_buffer_pool_pages_data* Innodb_page_size * 1.05 / (1024*1024*1024)
  5. 命令如:SET GLOBAL innodb_buffer_pool_size= 32423423:单位kb
 1668

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2