mysql Innodb缓存命中率
来源:互联网 发布:质量管理体系数据分析 编辑:程序博客网 时间:2024/05/21 08:00
最近看服务器log发现有不少数据库操作超时的情况,有时候处理一个sql操作需要一两秒的时间,这显然是不可接受的。查了下原因,数据库操作太多太频繁压力大是一方面,数据库配置没有优化也有一定的原因。mysql中使用命令show status like 'Innodb_buffer_pool_%';可以查看mysql innodb缓存的一些信息(mysql innodb缓存保存了数据库索引和一些表的数据),如下:
+-----------------------------------+-------+| Variable_name | Value |+-----------------------------------+-------+| Innodb_buffer_pool_pages_data | 56 || Innodb_buffer_pool_pages_dirty | 0 || Innodb_buffer_pool_pages_flushed | 197 || Innodb_buffer_pool_pages_free | 455 || Innodb_buffer_pool_pages_misc | 1 || Innodb_buffer_pool_pages_total | 512 || Innodb_buffer_pool_read_ahead_rnd | 3 || Innodb_buffer_pool_read_ahead_seq | 0 || Innodb_buffer_pool_read_requests | 7000 || Innodb_buffer_pool_reads | 31 || Innodb_buffer_pool_wait_free | 0 || Innodb_buffer_pool_write_requests | 419 |+-----------------------------------+-------+(上面非项目数据)
其中,Innodb_buffer_pool_read_requests表示read请求的次数,Innodb_buffer_pool_reads表示从物理磁盘中读取数据的请求次数,所以innodb buffer的read命中率就可以这样得到:(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100%。一般来讲这个命中率不会低于99%,如果低于这个值的话就要考虑加大innodb buffer pool。
另外,Innodb_buffer_pool_pages_total参数表示缓存页面的总数量(一页16k,所以总共8M),Innodb_buffer_pool_pages_data代表有数据的缓存页数,Innodb_buffer_pool_pages_free代表没有使用的缓存页数。如果Innodb_buffer_pool_pages_free偏大的话,证明有很多缓存没有被利用到,这时可以考虑减小缓存,相反Innodb_buffer_pool_pages_data过大就考虑增大缓存。
可以通过show variables like '%innodb_buffer_pool_size%';命令查看当前缓存的大小:
+-------------------------+---------+| Variable_name | Value |+-------------------------+---------+| innodb_buffer_pool_size | 8388608 |+-------------------------+---------+
默认是8M,一般来讲这个值肯定是不够的,大家通常建议设置为系统内存的50%-80%,但也不是越大越好,要根据具体项目具体分析(操作系统留1G左右,mysql连接数*4M,宿主程序缓存nM)。设置方法,修改/etc/my.cnf文件,并添加字段innodb_buffer_pool_size = 3G,然后重启mysql 服务就ok了。
0 0
- mysql Innodb缓存命中率
- Mysql缓存命中率
- mysql 缓存命中率
- Mysql缓存命中率
- Mysql缓存命中率
- MySQL缓存命中率概述及如何提高缓存命中率
- MySQL缓存命中率概述及如何提高缓存命中率
- 合理配置MySQL缓存 提高缓存命中率
- 合理配置MySQL缓存 提高缓存命中率
- 合理配置MySQL缓存 提高缓存命中率
- 合理配置MySQL缓存 提高缓存命中率
- MySql-InnoDB-缓存管理
- 缓存命中率
- [Mysql]合理配置MySQL缓存 提高缓存命中率
- innodb 命中率评估
- Mysql查询缓存碎片、缓存命中率及Nagios监控
- Mysql查询缓存碎片、缓存命中率及Nagios监控
- 合理配置MySQL缓存 提高缓存命中率(转)
- Hibernate初认识以及HelloWorld
- OC_继承,便利构造器,初始化方法
- USACO Name That Number(File)
- 习题1-3 连续和(sum)
- Codeforces Round #275 (Div. 2) C. Diverse Permutation 构造
- mysql Innodb缓存命中率
- 股票学习03(挂单)
- 一种用于高清下变换的基函数
- Android Configuration横竖屏切换时Activity生命周期调用
- OpenGl_ES 使用流程
- 习题1-4 正弦和余弦(sin和cos)
- Unity3d-Camera
- iOS学习笔记--(c基础2)
- 在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理