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';
SELECT 268435456/1024.0/2014.0=130M。
查看内存大小:
[root@xuegod64 ~]# cat /proc/meminfo

上面内存约等于2031912/1024.0=1984M。
2. buffer_pool 运行参数
-- 下面是buffer_pool 运行相关参数
SHOW STATUS LIKE 'Innodb_buffer_pool_%';

|
Innodb_buffer_pool_pages_total |
缓存池页总数目。 |
|
Innodb_buffer_pool_pages_free |
缓存池剩余的页数目。 |
|
Innodb_buffer_pool_pages_data |
缓存池中包含数据的页的数目,包括脏页。 |
|
Innodb_buffer_pool_read_requests |
innodb进行逻辑读的数量。 |
|
Innodb_buffer_pool_reads |
进行逻辑读取时无法从缓冲池中获取而执行单页读取的次数。 |
|
Innodb_buffer_pool_write_requests |
写入 InnoDB 缓冲池的次数。 |
|
Innodb_buffer_pool_read_ahead_rnd |
记录进行随机读的时候产生的预读次数。 |
|
Innodb_buffer_pool_read_ahead |
预读到innodb buffer pool里次数。 |
|
Innodb_buffer_pool_read_ahead_evicted |
预读的页数,但是没有被读取就从缓冲池中被替换的页的数量,一般用来判断预读的效率。 0次 |
|
Innodb_buffer_pool_wait_free |
数据要写入buffer pool的时候,需要等待空闲页的次数。是指缓存池里没有干净页的时候读取或创建页,要先等待页被刷新。 |
|
Innodb_buffer_pool_pages_dirty |
buffer pool缓存池中脏页的数目。 |
|
Innodb_buffer_pool_pages_flushed |
buffer pool缓存池中刷新页请求的数目。 |
|
Innodb_buffer_pool_pages_misc |
buffer pool缓存池中当前页已经被用作管理用途或hash index而不能用作为普通数据页的数目。 |
|
Innodb_buffer_pool_pages_old |
在旧区域存放着多少个页。 |
|
Innodb_buffer_pool_pages_made_young |
移动到新区域的有多少个页。 |
|
Innodb_buffer_pool_pages_made_not_young |
没有移动到新区域的有多少个页。 |
Buffer Pool使用率:14328.0/16382.0 *100=87.46%
缓存读命中率: (529670886-941147)/529670886.0 *100 =99.82%
实际占用空间是:16382 *16(页单位)*1024=268402688 字节。 上面给buffer_pool_size分配的是268435456字节。
3. 设置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.如下图

要永久改变,需要在操作系统里使用vim my.cnf 来修改. 如下图所示, 去掉#重新定义值。

mysql 开发进阶篇系列 18 MySQL Server(innodb_buffer_pool_size)的更多相关文章
- mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...
- mysql 开发进阶篇系列 16 MySQL Server(myisam key_buffer)
一.概述 mysql 提供了很多参数来进行服务器的设置,当服务第一次启动的时候,所有启动参数值都是系统默认的.这些参数在很多生产环境下并不能满足实际的应用需求.在这个系列中涉及到了liunx 服务器, ...
- mysql 开发进阶篇系列 41 mysql日志之慢查询日志
一.概述 慢查询日志记录了所有的超过sql语句( 超时参数long_query_time单位 秒),获得表锁定的时间不算作执行时间.慢日志默认写入到参数datadir(数据目录)指定的路径下.默认文件 ...
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...
- mysql 开发进阶篇系列 17 MySQL Server(key_buffer与table_cache)
一.key_buffer 上一篇了解key_buffer设置,key_buffer_size指定了索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度.通过检查状态值Key_read_reque ...
- mysql 开发进阶篇系列 19 MySQL Server(innodb_flush_log_at_trx_commit与sync_binlog)
一. innodb_flush_log_at_trx_commit 这个参数名称有个log,一看就是与日志有关.是指:用来控制缓冲区(log buffer)中的数据写入到日志文件(log file), ...
- mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)
一.概述 二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程, ...
- mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志
一.binlog 二进制其它选项 在二进制日志记录了数据的变化过程,对于数据的完整性和安全性起着非常重要作用.在mysql中还提供了一些其它参数选项,来进行更小粒度的管理. 1.1 binlog-do ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
随机推荐
- Mysql数据库每天定时执行备份方法
此数据库备份方法是简单的数据库备份方法,就是从Mysql的数据文件下,将数据库文件拷贝到指定的文件夹目录下 1.创建txt文件,添加脚本 net stop mysql xcopy D:\MySql\D ...
- 重置表单中的文件上传控件(file input)的方法
方法一: 调用所在 form 表单的 reset 方法,这个方法的缺点是会把整个表单重置,需要存储表单的状态,再回填回去 方法二: 使用jQuery,代码为: $("#id").r ...
- easyui combobox 不能选中值的问题
easyui comboxbox 下拉框加载到数据,但是不能选中.一般情况是重复渲染,页面有同名元素,valueField重复. 这次遇到的具体问题是,第一次刷新页面,可以选中,第二次不能选中.考虑到 ...
- python语法之函数2
高阶函数: def f(n): return n*n def foo(a,b,func): func(a)+func(b) ret=func(a)+func(b) return ret foo(1,2 ...
- Java: 集合类详解
0.参考文献 http://blog.csdn.net/liulin_good/article/details/6213815 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比 ...
- ELK的高级篇(测试记录各种日志)
一.elk架构已经完成情况情况下 访问限制: 加个x-pack插件 1)一个脚本收集多个日志,if 判断写入es的索引 [root@k8s6 conf.d]# cat file.conf inpu ...
- 两条比较实用的mysql导入导出命令
开发lamp程序,对mysql数据库的导入导出是经常的事情,我就遇到这个问题,不能很方便的将数据库导入导出.今天整理了两条比较实用的命令,轻松搞定导入导出问题. 首先是导出命令 1.导出数据库 mys ...
- Notepad++编写运行python程序
Notepad++编写运行python程序. 1.菜单栏->语言->P->Python设置语言为Python 2.写好代码后ctrl+s保存文件为py文件 3.菜单栏->运行, ...
- 关于浏览器cookie的小知识
浏览器对于总的cookie数量是没有限制的,但是对于每个域名的cookie数量是有限制的. 一,不同的浏览器,对于一个域名的cookie数量限制上限是不同的: 1,IE6以下版本,最多20个.IE7以 ...
- 学以致用三十四-----python2.0加载图片
想用做一个静态图片为背景的页面.结果遇到了一些阻碍.其主要原因还是路径没有找对.网上也参考了不少方法,也许是因为版本不同,处理的方法也不同,因此按照网上的处理方式,也没有得到解决. 为此困惑了一天.结 ...