Innodb特性之Read-Ahead(Buffer Pool Prefetching)
Read-Ahead官方說明: https://dev.mysql.com/doc/refman/5.7/en/innodb-performance-read_ahead.html
設計目的:
Read-Ahead用於非同步預取buffer pool中的多個page的一個預測行為。
InnoDB使用兩種提前預讀Read-Ahead演算法來提高I/O效能。
Linear read-ahead:線性預讀
如果一個extent中的被順序讀取的page超過或者等於
innodb_read_ahead_threshold
引數變數時,Innodb將會非同步的將下一個extent讀取到buffer pool中,innodb_read_ahead_threshold可以設定為0-64的任何值(注:innodb中每個extent就只有64個page),預設為56。值越大,訪問模式檢查就越嚴格。
Mark:官網說會預讀取下一個extent,但當前extent剩下沒有取完的page也會一起讀取嘛? 還不沒找到說明
Random read-ahead:隨機預讀
如果當同一個extent中連續的13個page在buffer pool中發現時,Innodb會將該extent中的剩餘page讀到buffer pool中。控制引數
innodb_random_read_ahead
預設沒有開啟。
評估預讀演算法的有效性
The
SHOW ENGINE INNODB STATUS
command displays statistics to help you evaluate the effectiveness of the read-ahead algorithm. Statistics include counter information for the following global status variables:
-
Innodb_buffer_pool_read_ahead 透過預讀讀入buffer pool中資料page數
-
Innodb_buffer_pool_read_ahead_evicted 透過預讀沒有被訪問就被驅逐的page
-
Innodb_buffer_pool_read_ahead_rnd
透過隨機預讀的次數
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2727692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Innodb特性之change buffer
- 給從庫預熱innodb buffer pool
- MySQL innodb_buffer_pool_size 變數MySql變數
- InnoDB 中的緩衝池(Buffer Pool)
- ubuntu 命令列更改innodb_buffer_pool_sizeUbuntu命令列
- 計算innodb_buffer_pool使用率
- MySQL innodb buffer pool 命中率以及快取了哪些 InnoDB TableMySql快取
- InnoDB Buffer Pool改進LRU頁面置換
- MySQL服務端innodb_buffer_pool_size配置引數MySql服務端
- MySQL 8.0 Reference Manual(讀書筆記70節--InnoDB Buffer Pool Configuration (1))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記71節--InnoDB Buffer Pool Configuration (2))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記72節--InnoDB Buffer Pool Configuration (3))MySql筆記
- ALTER SYSTEM FLUSH BUFFER_POOL
- CMU15445 (Fall 2019) 之 Project#1 - Buffer Pool 詳解Project
- MySQL入門--記憶體buffer poolMySql記憶體
- MySQL中讀頁緩衝區buffer poolMySql
- InnoDB關鍵特性之自適應hash索引索引
- Innodb關鍵特性之重新整理鄰接頁
- MySQL原理簡介—4.深入分析Buffer PoolMySql
- MySQL怎麼緩解讀的壓力的?---buffer poolMySql
- IO之核心buffer----"buffer cache"
- Java NIO之BufferJava
- 怎麼解決因全表掃描帶來的 Buffer Pool 汙染
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- NodeAPI學習之BufferAPI
- Node.js之BufferNode.js
- google protocol buffer——protobuf的使用特性及編碼原理GoProtocol
- Java NIO之Buffer的使用Java
- 面試題:你有沒有搞混查詢快取和Buffer Pool?談談看!面試題快取
- MySQL:一段innodb buffer instance和cleaner執行緒計算邏輯MySql執行緒
- Java NIO 之 Buffer(緩衝區)Java
- 關於 Node.js 之 BufferNode.js
- InnoDB學習(三)之BinLog
- InnoDB學習(二)之ChangeBuffer
- InnoDB學習(一)之BufferPool
- InnoDB引擎之flush髒頁
- 談談MySQL InnoDB儲存引擎事務的ACID特性MySql儲存引擎
- 8.0新特性-並行查詢innodb_parallel_read_threads並行Parallelthread