Innodb存储引擎的缓存命中率计算

今天药忘吃喽~ 2022-01-06 12:07 343阅读 0赞

数据库的慢查询是我们在生产环境中必须经常检测的,如果慢查询语句过多,说明我们应该增加buffer_pool的大小了。常常检查的指标就是查看缓存命中率是否过低。

  1. mysql> show status like 'innodb_buffer_pool%';
  2. +---------------------------------------+--------------------------------------------------+
  3. | Variable_name | Value |
  4. +---------------------------------------+--------------------------------------------------+
  5. | Innodb_buffer_pool_dump_status | Dumping of buffer pool not started |
  6. | Innodb_buffer_pool_load_status | Buffer pool(s) load completed at 190107 7:19:16 |
  7. | Innodb_buffer_pool_resize_status | |
  8. | Innodb_buffer_pool_pages_data | 31732 |
  9. | Innodb_buffer_pool_bytes_data | 519897088 |
  10. | Innodb_buffer_pool_pages_dirty | 0 |
  11. | Innodb_buffer_pool_bytes_dirty | 0 |
  12. | Innodb_buffer_pool_pages_flushed | 1298499 |
  13. | Innodb_buffer_pool_pages_free | 1024 |
  14. | Innodb_buffer_pool_pages_misc | 8 |
  15. | Innodb_buffer_pool_pages_total | 32764 |
  16. | Innodb_buffer_pool_read_ahead_rnd | 0 |
  17. | Innodb_buffer_pool_read_ahead | 0 |
  18. | Innodb_buffer_pool_read_ahead_evicted | 0 |
  19. | Innodb_buffer_pool_read_requests | 438699486 |
  20. | Innodb_buffer_pool_reads | 536971 |
  21. | Innodb_buffer_pool_wait_free | 42342 |
  22. | Innodb_buffer_pool_write_requests | 237826577 |
  23. +---------------------------------------+--------------------------------------------------+
  24. 18 rows in set (0.04 sec)

我们需要关注这几个值:Innodb_buffer_pool_read_requests表示read请求的次数,Innodb_buffer_pool_reads表示从物理磁盘中读取数据的请求次数

因此缓存命中率的计算方法是:(1- Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests) *100 %,如果缓存命中率过低,则我们需要考虑扩充内存的大小或者是innodb_buffer_pool_size的值。

转载于:https://www.cnblogs.com/FengGeBlog/p/10283095.html

发表评论

表情:
评论列表 (有 0 条评论,343人围观)

还没有评论,来说两句吧...

相关阅读

    相关 InnoDB存储引擎

    nnoDB存储引擎:行锁设计,支持MVCC,支持外键,提供一致性非锁定读,支持ACID事务 后台线程:负责刷新内存池中的数据,保证内存池的最新数据;将已修改的数据文件刷...