mySQL5.6新特性快速預熱Buffer_Pool緩衝池

weixin_34127717發表於2015-08-02

在之前的版本里,如果一臺高負荷的機器重啟後,記憶體中大量的熱資料被清空,此時就會重新從磁碟載入到Buffer_Pool緩衝池裡,這樣當高峰期間,效能就會變得很差,連線數就會很高。

在MySQL5.6裡,一個新特性避免的這種問題的出現。

你只需在my.cnf裡,加入如下:

innodb_buffer_pool_dump_at_shutdown = 1

解釋:在關閉時把熱資料dump到本地磁碟。

innodb_buffer_pool_dump_now = 1

解釋:採用手工方式把熱資料dump到本地磁碟。

innodb_buffer_pool_load_at_startup = 1

解釋:在啟動時把熱資料載入到記憶體。

innodb_buffer_pool_load_now = 1

解釋:採用手工方式把熱資料載入到記憶體。

在關閉MySQL時,會把記憶體中的熱資料儲存在磁碟裡ib_buffer_pool檔案中,位於資料目錄下。

檢視日誌,你會發現:

在啟動後,會自動載入熱資料到Buffer_Pool緩衝池裡。

檢視日誌,你會發現:

這樣,始終保持熱資料在記憶體中。

注:只有在正常關閉MySQL服務,或者pkill mysql時,會把熱資料dump到記憶體。機器當機或者pkill -9 mysql,是不會dump。

相關文章