Innodb存儲引擎的緩存命中率計算


數據庫的慢查詢是我們在生產環境中必須經常檢測的,如果慢查詢語句過多,說明我們應該增加buffer_pool的大小了。常常檢查的指標就是查看緩存命中率是否過低。

mysql> show status like 'innodb_buffer_pool%';
+---------------------------------------+--------------------------------------------------+
| Variable_name                         | Value                                            |
+---------------------------------------+--------------------------------------------------+
| Innodb_buffer_pool_dump_status        | Dumping of buffer pool not started               |
| Innodb_buffer_pool_load_status        | Buffer pool(s) load completed at 190107  7:19:16 |
| Innodb_buffer_pool_resize_status      |                                                  |
| Innodb_buffer_pool_pages_data         | 31732                                            |
| Innodb_buffer_pool_bytes_data         | 519897088                                        |
| Innodb_buffer_pool_pages_dirty        | 0                                                |
| Innodb_buffer_pool_bytes_dirty        | 0                                                |
| Innodb_buffer_pool_pages_flushed      | 1298499                                          |
| Innodb_buffer_pool_pages_free         | 1024                                             |
| Innodb_buffer_pool_pages_misc         | 8                                                |
| Innodb_buffer_pool_pages_total        | 32764                                            |
| Innodb_buffer_pool_read_ahead_rnd     | 0                                                |
| Innodb_buffer_pool_read_ahead         | 0                                                |
| Innodb_buffer_pool_read_ahead_evicted | 0                                                |
| Innodb_buffer_pool_read_requests      | 438699486                                        |
| Innodb_buffer_pool_reads              | 536971                                           |
| Innodb_buffer_pool_wait_free          | 42342                                            |
| Innodb_buffer_pool_write_requests     | 237826577                                        |
+---------------------------------------+--------------------------------------------------+
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的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM