日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解MySQL InnoDB存儲引擎的內存管理

瀏覽:814日期:2023-10-03 19:26:14
存儲引擎之內存管理

在InnoDB存儲引擎中,數據庫中的緩沖池是通過LRU(Latest Recent Used,最近最少使用)算法來進行管理的,即最頻繁使用的頁在LRU列表的最前段,而最少使用的頁在LRU列表的尾端,當緩沖池不能存放新讀取到的頁時,首先釋放LRU列表尾端的頁。

詳解MySQL InnoDB存儲引擎的內存管理

上面的圖中,我使用8個數據頁來表示隊列,具體作用,先賣個關子。在InnoDB存儲引擎中,緩沖池中頁的默認大小是16KB,LRU列表中有一個midpoint的位置,新讀取到的數據頁并不是直接放入到LRU列表的首部,而是放入到LRU列表的midpoint位置,這個操作稱之為midpoint insertion stategy,也叫中間點插入策略。在默認配置下,該位置在LRU長度的5/8處,這也就是上面使用8個數據頁的作用。下面的圖示意了新的數據頁的插入過程:

詳解MySQL InnoDB存儲引擎的內存管理

mitpoint的位置可通過參數innodb_old_blocks_pct控制,如下:

mysql> show variables like ’innodb_old_blocks_pct’;+-----------------------+-------+| Variable_name | Value |+-----------------------+-------+| innodb_old_blocks_pct | 37 |+-----------------------+-------+ row in set (. sec)

從上面的例子看出,結果是37,這個37意味著新讀取的頁將被插入到大概距離LRU列表尾端37%的位置,差不多3/8的位置,在InnoDB存儲引擎中,midpoint之前的頁稱為new列表,后面的頁稱之為old列表,new列表中的頁是最為活躍的數據。

為什么不直接把數據頁放在LRU隊列的首部?

之所以不把新讀取的數據頁放在LRU隊列的首部,是因為某些全表掃描的SQL操作可能會將所有的熱點數據都刷新出LRU隊列,導致下一次訪問熱點數據的時候,必須從磁盤中取相應的數據,從而影響緩沖池的效率。為了解決這個問題,InnoDB使用另外一個參數來管理LRU列表,就是innodb_old_blocks_time,用于表示頁讀取到midpoint之后,多久才會加入到LRU列表的熱端。因此當需要執行上述所說的SQL操作時,可以通過下面的方法盡可能使LRU列表中的熱點數據不被刷出。

mysql> set global innodb_old_blocks_time=;Query OK, rows affected (0.00 sec)

這表示在1000s之后,才允許這些數據刷新到LRU列表的熱端。

如果在實際情況中,數據頁活躍的比率不止63%,用戶還可以通過設置innodb_old_blocks_pct來減少熱點頁可能被刷出的概率。

mysql> set global innodb_old_blocks_pct=; Query OK, rows affected (0.00 sec)

當數據庫剛啟動時,LRU的內容是空的,這個時候,所有的數據頁都放在Free列表中,當需要從緩沖池中分頁時,首先從Free列表中查找是否有可用的Free頁,如果存在,則將該頁從Free頁中刪除,然后放入到LRU的列表中。淘汰掉LRU列表末尾的數據頁,將該內存空間分配給新的頁。這個過程的流程圖如下:

詳解MySQL InnoDB存儲引擎的內存管理

當LRU列表中的頁從old部分加入到new部分時,稱此時發生的操作是page made young,而因為innodb_old_blocks_time的設置而沒有從old部分移動到new部分的操作稱之為page_not_made young。可以通過show engine innodb status來觀察LRU列表以及Free列表的使用情況和運行狀態。

mysql> show engine innodb statusG******----------------------BUFFER POOL AND MEMORY----------------------Total large memory allocated Dictionary memory allocated Buffer pool size Free buffers Database pages Old database pages Modified db pages Pending reads Pending writes: LRU , flush list , single page Pages made young , not young 0.00 youngs/s, 0.00 non-youngs/sPages read , created , written 0.00 reads/s, 0.00 creates/s, 0.00 writes/sNo buffer pool page gets since the last printoutPages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/sLRU len: , unzip_LRU len: I/O sum[]:cur[], unzip sum[]:cur[]--------------ROW OPERATIONS-------------- queries inside InnoDB, queries in queue read views open inside InnoDBProcess ID=, Main thread ID=, state: sleepingNumber of rows inserted , updated , deleted , read 0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s----------------------------END OF INNODB MONITOR OUTPUT============================ row in set (0.00 sec)

從上面的結果可以看到:當前buffer pool size總共有8191個頁,每個數據頁的大小是16k,總共的大小是8191*16k=128M的緩沖池,其中Free buffers表示當前Free列表中頁的數量。page made young顯示了LRU列表中頁移動到前端的次數,因為該服務器在運行階段沒有改變innodb_old_blocks_time的值,因此not young為0,youngs/s、non_youngs/s表示每秒這兩類操作的次數。

InnoDB存儲引擎從1.0.x版本開始支持壓縮頁的功能,即將原本16kb的數據頁壓縮成1KB、2KB、4KB和8KB。對于非16KB的頁,是通過unzip_LRU來管理的,上述命令中的第22行就顯示了壓縮頁和非壓縮頁的信息。

需要注意的一點是Free buffers的值與Database Pages的值之和不一定等于buffer pool size,因為緩沖池中的頁可能還會被分配各自適應哈希索引、鎖信息等頁,而這部分頁并不需要LRU算法進行維護。

臟頁

在LRU列表中的頁被修改之后,這個頁就稱之為“臟頁”,即緩沖池中的數據頁和磁盤上的數據產生了不一致,緩沖池的數據比較新,這時數據庫會通過checkpoint機制將臟頁刷新回磁盤,而Flush列表中的頁也就是臟頁列表,臟頁既存在于LRU列表中,也存在與Flush列表中,LRU列表用來管理緩沖池中頁的可用性,Flush列表用來管理將頁刷新回磁盤,二者不影響。Flush列表也可以通過show engine innodb status來查看,前面的結果列表中的第13行,modified db pages就是當前的臟頁數量,用戶可以通過元數據表INNODB_BUFFER_PAGE_LRU表來查看。

以上就是詳解MySQL InnoDB存儲引擎的內存管理的詳細內容,更多關于InnoDB 內存管理的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品电影| 日韩中文欧美在线| 神马久久午夜| 日韩高清不卡在线| 国产一区二区三区91| 天堂av在线| 亚洲精品一区二区在线播放∴| 成人午夜精品| 免费不卡中文字幕在线| 日韩精品91| 国产精品久久久久久模特| 国产麻豆综合| 国产成人免费精品| av不卡免费看| 成人影视亚洲图片在线| 免费黄网站欧美| 欧美性www| 国产日韩亚洲欧美精品| 亚洲精品在线国产| 亚洲涩涩av| 欧美91视频| 日韩一区欧美| 欧美日韩网址| 麻豆精品蜜桃| 日韩视频中文| 日本一不卡视频| 99国产精品| 久久高清一区| 婷婷综合在线| 精品国产亚洲日本| 亚洲天堂日韩在线| 老司机免费视频一区二区| 国产成人精品一区二区三区视频| 国产aⅴ精品一区二区三区久久| 91欧美在线| 激情久久一区二区| 免费一级欧美在线观看视频 | 亚洲激情中文| 久久的色偷偷| 亚洲h色精品| 伊人影院久久| 日韩av网站在线观看| 久久精品av麻豆的观看方式| 欧美日本不卡| 国产精品毛片久久| 欧美国产亚洲精品| 伊伊综合在线| 视频在线观看国产精品| 亚洲一区免费| 9国产精品视频| 国产精品一区二区免费福利视频 | 久久精品电影| 亚洲一区二区成人| 麻豆国产精品视频| 久久婷婷久久| 色网在线免费观看| 91av一区| 欧美日韩国产免费观看| 免费日韩av片| 欧美日韩国产一区二区在线观看| 国产精品porn| 日韩精品成人在线观看| 福利一区二区| 欧美日韩亚洲一区二区三区在线| 日韩在线欧美| 中文字幕视频精品一区二区三区| 亚洲精品福利| 中文一区一区三区免费在线观| 精品国产亚洲一区二区三区在线| 欧美特黄一级| 精品久久网站| 精品黄色一级片| 亚洲色图综合| 伊人久久av| 国产欧美一区二区色老头| 日韩国产一区二区三区| 神马午夜在线视频| 日本久久黄色| 欧美一区成人| 丝袜美腿成人在线| 欧美色图国产精品| 免费看精品久久片| 国产二区精品| 在线亚洲精品| 亚洲深夜福利在线观看| 视频一区在线视频| 亚洲精品国产偷自在线观看| se01亚洲视频| 国产一区二区三区91| 国产福利一区二区三区在线播放| 黄色网一区二区| 高清在线一区| 美女视频黄 久久| 日本天堂一区| 欧美精选一区二区三区| 亚洲天堂黄色| 亚洲1234区| 精品久久91| 美女久久99| 精品亚洲精品| 人人精品亚洲| 伊人久久亚洲美女图片| 欧美男人天堂| 亚洲日本免费电影| 亚洲欧洲免费| 亚洲精品福利| 久久久久午夜电影| 精品视频自拍| 91精品蜜臀一区二区三区在线 | 欧洲亚洲一区二区三区| 日韩一区亚洲二区| 国产精品毛片一区二区在线看| 成人国产精品一区二区免费麻豆| 亚洲欧洲日本mm| 在线手机中文字幕| 欧美私人啪啪vps| 综合五月婷婷| 黄色亚洲大片免费在线观看| 捆绑调教日本一区二区三区| 91伊人久久| 喷白浆一区二区| 精品一区在线| 蜜臀av免费一区二区三区| 国产精品一区二区三区av麻| 亚洲毛片网站| 影音先锋久久精品| 一区二区三区午夜视频| 亚洲经典在线| 欧美一级专区| 亚洲欧美久久精品| 在线一区二区三区视频| 亚洲色图综合| 中文字幕日韩亚洲| 蜜桃视频在线观看一区| 亚洲va久久久噜噜噜久久| 蜜臀久久99精品久久久久宅男 | 在线精品一区| 日本国产欧美| 福利片在线一区二区| 三级欧美韩日大片在线看| 国产99久久久国产精品成人免费| 亚洲资源网站| 99成人在线视频| 日韩精品免费视频一区二区三区| 亚洲欧洲一区| 动漫av一区| 日本少妇精品亚洲第一区| 免费精品国产的网站免费观看| 午夜久久av| 日本成人精品| 色婷婷色综合| 亚洲一区二区三区高清不卡| 日韩一区中文| 伊人久久视频| 日本一区二区三区中文字幕| 久久一区精品| 午夜在线视频一区二区区别| 国产欧美欧美| 夜夜嗨网站十八久久| 国产福利亚洲| 日韩精品一二区| 正在播放日韩精品| 日韩国产高清在线| 亚洲最新无码中文字幕久久| 日韩精品a在线观看91| 久久久久亚洲| 免费在线亚洲欧美| 久色成人在线| 久久蜜桃av| 精品网站999| 在线亚洲国产精品网站| 日韩欧美午夜| 久久av影视| 伊人精品在线| 91久久黄色| 另类小说一区二区三区| 伊人久久大香线蕉av不卡| 欧美 日韩 国产精品免费观看| 久久香蕉精品| 日韩三区在线| 中文在线不卡| 在线精品一区| 午夜一区在线| 美女久久久久| 亚洲欧美不卡| 蜜桃精品视频| 欧美日一区二区三区在线观看国产免 | 日韩精品免费观看视频| 99国产精品久久久久久久成人热| 97精品资源在线观看| 欧美日韩国产综合网| 不卡在线一区二区| 欧美二区视频| 国产婷婷精品| 亚洲91网站| 国产亚洲久久| 欧美va亚洲va日韩∨a综合色| 欧美日韩精品在线一区| 午夜精品亚洲| 一区二区三区午夜视频|