溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

innodb新特性之buffer pool預(yù)熱

發(fā)布時(shí)間:2020-08-08 20:02:34 來源:ITPUB博客 閱讀:135 作者:StevenBeijing 欄目:MySQL數(shù)據(jù)庫

背景

innodb buffer pool做為innodb最重要的緩存,其緩存命中率的高低會(huì)直接影響數(shù)據(jù)庫的性能。因此在數(shù)據(jù)庫發(fā)生變更,比如重啟、主備切換實(shí)例遷移等等,innodb buffer pool 需要一段時(shí)間預(yù)熱,期間數(shù)據(jù)庫的性能會(huì)受到明顯影響。 另外mysql 5.7以前innodb buffer pool緩存大小修改不是動(dòng)態(tài)的,重啟才能生效。因此innodb buffer pool的預(yù)熱和innodb buffer pool大小的動(dòng)態(tài)修改,對性能要求較高的應(yīng)用來說是不錯(cuò)的特性,下面我來看看這兩個(gè)特性的具體實(shí)現(xiàn)。

buffer pool 預(yù)熱

MySQL 5.6以后支持buffer pool預(yù)熱功能。引入了以下參數(shù), 參數(shù)具體含義參見 官方文檔。

innodb_buffer_pool_load_nowinnodb_buffer_pool_dump_now
innodb_buffer_pool_load_at_startup
innodb_buffer_pool_dump_at_startup
innodb_buffer_pool_filename

buffer pool預(yù)熱分為dump過程和load過程,均由后臺(tái)線程buf_dump_thread完成。 比如用戶發(fā)起set命令

set global innodb_buffer_pool_dump_now=on;set global innodb_buffer_pool_load_now=on;

set 命令會(huì)立刻返回,具體操作由buf_dump_thread來實(shí)現(xiàn)。

  • dump 過程

    鎖buf_pool 遍歷LRU鏈表,將(space, pageno) 先收集到數(shù)組 釋放鎖 再將數(shù)據(jù)寫入innodb_buffer_pool_filename定有的文件中

  • load過程

    從文件讀入數(shù)組 按(space,pageno)排序數(shù)據(jù) 依次同步讀取頁到buffer pool中

dump過程一般比較快,而load過程相對要慢些。

通過 Innodb_buffer_pool_dump_statusInnodb_buffer_pool_load_status可查看dump/load的狀態(tài)

另外5.7引入了performance_schema.events_stages_current來顯示load進(jìn)度,每load 32M會(huì)更新一條進(jìn)度信息

select * from performance_schema.events_stages_current;
THREAD_ID       19
EVENT_ID        1367
END_EVENT_ID    NULL
EVENT_NAME      stage/innodb/buffer pool loadSOURCE  buf0dump.cc:619TIMER_START     33393877311000TIMER_END       33398961258000TIMER_WAIT      5083947000WORK_COMPLETED  0WORK_ESTIMATED  1440NESTING_EVENT_ID        NULLNESTING_EVENT_TYPE      NULL

WORK_ESTIMATED表示總page數(shù) WORK_COMPLETED表示當(dāng)前已load page數(shù)

dump文件的數(shù)據(jù)格式如下

#cat ib_buffer_pool |more0,70,10,30,20,40,110,50,6

dump文件比較簡單,我們可以編輯此文件來預(yù)加載指定page,比較靈活。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI