mysqlcheckpoint有什么作用

本篇內(nèi)容主要講解“MySQL checkpoint有什么作用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mysql checkpoint有什么作用”吧!

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站設計、網(wǎng)站建設、程序、域名、空間一條龍服務,提供基于WEB的系統(tǒng)開發(fā). 服務項目涵蓋了網(wǎng)頁設計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、移動網(wǎng)站建設等網(wǎng)站方面業(yè)務。

checkpoint檢查點主要是刷新臟頁到磁盤上,使數(shù)據(jù)庫達到數(shù)據(jù)狀態(tài)一致性的工作。因為事務的提交只會刷新操作日志到磁盤,臟數(shù)據(jù)是異步刷新到磁盤,這個異步就是靠checkpoint。

一、主要解決以下問題:

1、恢復的時候減少前滾操作,減少恢復時間

2、回收臟頁,循環(huán)利用緩存池

3、重做日志不可用,刷新臟頁

二、checkpoint種類及觸發(fā)條件

sharp checkpoint (類似oracle全量)

當innodb_fast_shutdown=1和0時,數(shù)據(jù)庫關(guān)閉時所有臟頁全部刷新到磁盤上

Fuzzy checkpiont(類似oracle增量)

1、Master Thread進程每幾秒或每十秒異步的將臟頁一定比例的刷新到磁盤上

2、FlUSH_LUR_LIST checkpoint是因為在innodbmysql5.6版本以前需要保證LRU列表中需要有差不多100個空閑頁可供使用,從mysql5.6版本以后,這個檢查被放在一個單獨的page cleaner線程中進行,而且用戶可以通過參數(shù)innodb_lru_scan_depth控制LRU列表中可用頁的數(shù)量,默認為1024

3、Async/Sync Flush checkpoint值重做日志文件不可用的時候

在重做日志文件不可用的情況下,需要將一些也刷新回磁盤,而操作發(fā)生在Flush列表上。若將已經(jīng)寫入到重做日志的LSN記為redo_lsn,將已經(jīng)刷新回磁盤最新的LSN記為checkpoint_lsn,則可以定義:checkpoint_age = redo_lsn-checkpoint_lsn在定義一下的變量async_water_mark=75%*total_redo_log_file_size、sync_water_mark=90%*total_redo_file_size。若每個重做日志的大小為1G且定義了兩個重做日志共2G。那么async_water_mark=1.5G,sync_water_mark=1.8G。

當checkpoint_age<async_water_mark時,不需要刷新任何臟數(shù)據(jù)到磁盤; </async_water_mark時,不需要刷新任何臟數(shù)據(jù)到磁盤;<>

當async_water_mark<checkpoint_age<sync_water_mark時,觸發(fā)async flush從flush列表刷新足夠的臟頁會磁盤,使得刷新后滿足checkpoint_age<async_water_mark; </checkpoint_age

當checkpoint_age>sync_water_mark時,這種情況很少發(fā)生除非設置的重做日志文件太小,并且進行類似于LOAD DATA的BULK INSRET操作。這個時候觸發(fā)Sync Flush從Flush列表刷新足夠的臟頁會磁盤,使得刷新后滿足checkpoint_age<async_water_mark; </async_water_mark;<>

Async Flush Checkpoint會阻塞發(fā)現(xiàn)問題的用戶查詢線程,Sync Flush Checkpoint會阻塞所有的用戶查詢線程,并且等待臟頁刷新完成。但是從MySQL5.6版本開始這部分操作放入單獨的Page Cleaner Thread中,不再會堵塞用戶查詢線程。

4、Dirty Page too much  當緩存池中的數(shù)據(jù)比例達到innodb_max_dirty_pages_pct比例時,強制checkpoint,刷新一部分臟頁到磁盤上,innodb 1.0.X版本之前該參數(shù)默認是90,之后的版本都為75

mysql> show variables like 'innodb_max_dirty_pages_pct';

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| innodb_max_dirty_pages_pct | 75    |

+----------------------------+-------+

1 row in set (0.00 sec)

到此,相信大家對“mysql checkpoint有什么作用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

分享文章:mysqlcheckpoint有什么作用
標題來源:http://www.muchs.cn/article2/gcejic.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設企業(yè)建站、小程序開發(fā)自適應網(wǎng)站、網(wǎng)站導航、響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化