Mysql
獲取 innodb 緩衝區使用情況
我正在執行 MySQL 5.5.52 我想看看我的 innodb 緩衝池有多少被使用了。如果我執行“show engine innodb status”,我會看到:
---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 10731520; in additional pool allocated 0 Dictionary memory allocated 1823022 Buffer pool size 639 Free buffers 0 Database pages 638 Old database pages 215 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 16622990, not young 0 0.00 youngs/s, 0.00 non-youngs/s Pages read 19765731, created 109264, written 174555 0.00 reads/s, 0.00 creates/s, 0.00 writes/s No buffer pool page gets since the last printout Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 638, unzip_LRU len: 0 I/O sum[0]:cur[0], unzip sum[0]:cur[0]
裡面有什麼可以告訴我用了多少嗎?
如果我執行 MySQL 工作台,它會顯示 InnoDB Buffer Usage: 79.2% 但我想要一種方法來使用 SQL 以程式方式獲取此資訊,而不僅僅是從 GUI 中。我怎樣才能做到這一點?
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_free'
並使SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total'
您能夠得出這個百分比。請記住,page_free 為 0 並不是致命的,甚至不是必要的壞事——它只是意味著每隔一段時間就會有一次讀取來自磁碟或頁面記憶體。它發生的速率對與 innodb_buffer_pool 大小相關的性能更為重要。