Mysql
MySql 不使用緩衝池
我正在檢查 MySql 數據庫上的緩衝池問題。根據此處顯示的獲取數據庫大小的查詢,數據庫總大小約為 11GB。不幸的是,我知道我的記憶體要少得多。這個虛擬機總共只有大約 4.5GB。所以我檢查了 InnoDB 緩衝池的使用情況,希望看到它幾乎滿載。相反,我看到了相反的情況:
show engine innodb status \G;
... 緩衝池大小 163839 可用緩衝區 132864 ...
似乎緩衝池幾乎沒有被觸及。而且,是的,這些都是 InnoDB 表:
SELECT Engine, COUNT(*) "Count" FROM Information_Schema.Tables WHERE table_schema = 'My_Database' GROUP BY Engine;
引擎數 ----- ----- 創新數據庫 169
這裡會發生什麼?
我真是個傻瓜……今天早上伺服器重新啟動了。當我完成這個問題時,我意識到了這一點。在數據庫實際需要使用那麼多數據之前,緩衝池不會填滿。實際上,如果我重新執行緩衝池查詢,我可以看到“空閒緩衝區”數量緩慢減少。
我可以執行一些查詢來強製表進入記憶體,但鑑於我知道我沒有足夠的記憶體來處理(希望很快解決這個問題),我應該等待並讓我的使用者告訴數據庫哪些數據更重要。