mysql 开发进阶篇种类 18 MySQL Server(innodb_buffer_pool_size)

从这篇开始,讲innodb存储引擎中,对于多少个第一的服务器参数配置。这个参数以innodb_xx
开头。

  1. innodb_buffer_pool_size的设置

        
这几个参数定义了innodb存储引擎的表数据和目录数据的最大内存缓冲区大小,和myisam分歧,myisam的key_buffer_size只缓存索引键,而innodb_buffer_pool_size是同时为数据块和索引块做缓存的。这些天性与oracle是一律的,这么些值设得越高,访问表中数据须求的磁盘i/o就越少(物理I/O)。在一个专用的数据库服务器上,可以设置这几个参数达机械物理内存大小的50–80%。考虑点:在单身给
MySQL
使用的主机里,内存分配还包罗系统运用,线程独享,myisam缓存等。还有允许的并发连接数。还有指出不要把它设置得太大,因为对物理内存的竞争恐怕在操作系统上造成内存调度。

-- innodb缓存区大小(kb)
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

图片 1  SELECT
268435456/1024.0/2014.0=130M。

查看内存大小:
[root@xuegod64 ~]# cat /proc/meminfo

    图片 2

  上边内存相当于2031912/1024.0=1984M。
2. buffer_pool 运行参数

-- 下面是buffer_pool 运行相关参数
SHOW STATUS LIKE  'Innodb_buffer_pool_%';

  图片 3

Innodb_buffer_pool_pages_total 

缓存池页总数目。
共占用了16382 页 。单位page

Innodb_buffer_pool_pages_free

缓存池剩余的页数目。
在16382 页中有2000页没有使用。 单位page

Innodb_buffer_pool_pages_data

缓存池中包含数据的页的数目,包括脏页。
14273个页含有数据。单位page

Innodb_buffer_pool_read_requests

innodb进行逻辑读的数量。
529670886次请求读。单位次数

Innodb_buffer_pool_reads

进行逻辑读取时无法从缓冲池中获取而执行单页读取的次数。
941147次是物理I/0读取。单位次数

Innodb_buffer_pool_write_requests

写入 InnoDB 缓冲池的次数。
48606702次请求写入。单位次数

Innodb_buffer_pool_read_ahead_rnd

记录进行随机读的时候产生的预读次数。
0次

Innodb_buffer_pool_read_ahead

预读到innodb buffer pool里次数。
1465370次。  单位page

Innodb_buffer_pool_read_ahead_evicted

预读的页数,但是没有被读取就从缓冲池中被替换的页的数量,一般用来判断预读的效率。 0次

Innodb_buffer_pool_wait_free

数据要写入buffer pool的时候,需要等待空闲页的次数。是指缓存池里没有干净页的时候读取或创建页,要先等待页被刷新。
2927次。 单位次数。

Innodb_buffer_pool_pages_dirty

buffer pool缓存池中脏页的数目。
0次。单位是page

Innodb_buffer_pool_pages_flushed

buffer pool缓存池中刷新页请求的数目。
15437744次。单位page

Innodb_buffer_pool_pages_misc

buffer pool缓存池中当前页已经被用作管理用途或hash index而不能用作为普通数据页的数目。
109次。单位page

Innodb_buffer_pool_pages_old

在旧区域存放着多少个页。
5249次。单位page

Innodb_buffer_pool_pages_made_young

移动到新区域的有多少个页。
353059次。单位page

Innodb_buffer_pool_pages_made_not_young

没有移动到新区域的有多少个页。
31725809次。单位page

  Buffer Pool使用率:14328.0/16382.0 *100=87.46%
  缓存读命中率: (529670886-941147)/529670886.0 *100 =99.82%
  实际占有空间是:16382 *16(页单位)*1024=268402688 字节。
上面给buffer_pool_size分配的是268435456字节。

  1. 设置buffer_pool参数

    — 从134217728设置成268435456 (另一台mysql)
    SET GLOBAL innodb_buffer_pool_size= 268435456

  由于SHOW
VARIABLES下的参数都以静态值。当mysql重启时,上面的缓存设置将失效。

[root@xuegod64 ~]# systemctl stop mysqld.service
[root@xuegod64 ~]# systemctl start  mysqld.service

  重启后依旧134217728.如下图
  图片 4

  要永久改变,需求在操作系统里采纳vim my.cnf 来修改. 如下图所示,
去掉#再度定义值。

  图片 5

 

相关文章