mysql如何查看缓冲池命中率

这篇文章给大家分享的是有关mysql如何查看缓冲池命中率的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

方法一:
mysql> show engine innodb status\\G;
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2016-06-07 09:40:38 7f593136f700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 6 seconds       #以下信息是最近6秒的平均值
………………………………………
………………………………………
Buffer pool size        393208
Buffer pool size, bytes 6442319872
Free buffers            8807
Database pages          373575
Old database pages      137869
Modified db pages       43
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 1132357, not young 92318292
2.33 youngs/s, 2496.75 non-youngs/s
Pages read 2127203, created 1317816, written 1762250
18.00 reads/s, 3.83 creates/s, 14.33 writes/s
Buffer pool hit rate 998 / 1000, young-making rate 0 / 1000 not 314 / 1000      #缓冲池命中率
结果:最近6秒缓冲池命中率是99.8%

方法二:
mysql> show global status like ‘innodb%read%’;
+—————————————+————-+
| Variable_name                         | Value       |
+—————————————+————-+
| Innodb_buffer_pool_read_ahead_rnd     | 0           |
| Innodb_buffer_pool_read_ahead         | 839015      |               #预读次数
| Innodb_buffer_pool_read_ahead_evicted | 0           |
| Innodb_buffer_pool_read_requests      | 1497697965  |           #从缓冲池中读取页的次数
| Innodb_buffer_pool_reads              | 1227641     |                  #从物理磁盘读取页的次数
| Innodb_data_pending_reads             | 0           |
| Innodb_data_read                      | 34861846528 |                  #总共读入的字节数
| Innodb_data_reads                     | 2128711     |                     #总共读取的次数
| Innodb_master_thread_active_loops     | 63667       |
| Innodb_master_thread_idle_loops       | 24896       |
| Innodb_pages_read                     | 2127692     |
| Innodb_rows_read                      | 803908452   |
| Innodb_read_views_memory              | 2176        |
+—————————————+————-+
13 rows in set (0.00 sec)

缓冲池命中率= Innodb_buffer_pool_read_requests/(Innodb_buffer_pool_read_requests+Innodb_buffer_pool_reads+Innodb_buffer_pool_read_ahead)=1497697965/(1497697965+1227641+839015)=99.85%
平均读取的字节数=Innodb_data_read/ Innodb_data_reads=16376
可以看出系统的内存使用效率还是很高的

感谢各位的阅读!关于“mysql如何查看缓冲池命中率”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


【AD】美国洛杉矶/香港/日本VPS推荐,回程电信CN2 GIA线路,延迟低、稳定性高、免费备份_搬瓦工

【AD】炭云:36元/年/1GB内存/20GB SSD空间/500GB流量/5Gbps端口/KVM/香港/国际线路LUMEN