MYSQL innodb buffer 狀態資料的儲存和載入

gaopengtttt發表於2017-03-21
本文參考官方手冊
原創轉載請註明出處


版本:MYSQL 5.7

當資料庫重啟後,buffer中的資料需要重新預熱,所謂預熱就是等待常用資料通過使用者呼叫SQL語句從磁碟載入到記憶體,
這個過程ORACLE中叫做物理讀取,對於較大的平臺這個預熱過程往往需要較大的代價,典型的就是第一次執行一個select
語句很慢,過後再次執行就很快了。
對於這種情況innodb預設在關閉和啟動的時候都會儲存和載入狀態資料,由引數
innodb_buffer_pool_load_at_startup

innodb_buffer_pool_dump_at_shutdown
進行控制,預設都是on的
其儲存比率由引數控制
innodb_buffer_pool_dump_pct 
預設為25%
而其檔案由引數
innodb_buffer_pool_filename控制預設為:
mysql> show variables like '%innodb_buffer_pool_filename%';
+-----------------------------+----------------+
| Variable_name               | Value          |
+-----------------------------+----------------+
| innodb_buffer_pool_filename | ib_buffer_pool |
+-----------------------------+----------------+
這個檔案在innodb資料檔案目錄下,其中儲存的是space_no,page_no形式如下:
545,213
545,212
545,211
545,210
545,209
545,208
545,207
......


線上情況下可以使用如下語句:
SET GLOBAL innodb_buffer_pool_dump_now=ON;
SET GLOBAL innodb_buffer_pool_load_now=ON;
進行dump和load,並且可以通過
SHOW STATUS LIKE 'Innodb_buffer_pool_dump_status';

SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
檢視dump和load的情況

作者微信:

               

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2135756/,如需轉載,請註明出處,否則將追究法律責任。

相關文章