婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)

InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)

熱門標簽:手機用地圖標注工具 智能電銷機器人靠譜么 地圖標注培訓 安國在哪里辦理400電話 南宋地圖標注黃河華山 昆明智能外呼系統中心 電銷機器人說明書 長安區違法建房地圖標注 電銷機器人公眾號推送

后臺線程

•Master Thread

核心后臺線程,主要負責將緩沖池的數據異步刷新到磁盤。例如臟頁的刷新,插入緩沖的合并,undo 頁的回收等。

每秒一次的操作:

1.日志緩沖刷新到磁盤,即使該事務還沒有提交。該操作總是會發生,這個就是為了再大的事務,提交時間都很短。

2.當IO壓力很小時(1s內發生的IO次數小于5% innodb_io_capacity)合并5% innodb_io_capacity 的插入緩沖。

3.當臟頁比例大于 innodb_max_dirty_pages_cnt, 刷新 innodb_io_capacity 個緩沖池中的臟頁到磁盤。否則如果 innodb_adaptive_flush 開啟,則根據buf_flush_get_desired_flush_rate 來選擇合適刷新臟頁數量進行刷新。

每10秒一次的操作:

1.如果過去10S 內IO操作小于 innodb_io_capacity, 刷新 innodb_io_capacity 個緩沖池中的臟頁到磁盤。

2.合并5% innodb_io_capacity 個插入緩沖。

3.將日志緩沖刷新到磁盤。

4.刪除無用的undo頁。

5.如果緩沖池中臟頁比例超過70%,再次刷新 innodb_io_capacity 個臟頁到磁盤。否則刷新10% innodb_io_capacity 個臟頁。

background loop(數據庫空閑或者數據庫關閉時):

1.刪除無用的undo頁。

2.合并 innodb_io_capacity 個插入緩沖。

flush loop(數據庫空閑):

1.刷新 innodb_io_capacity 個臟頁

•IO Thread

Innodb存儲引擎大量使用了AIO, IO Thread主要負責IO請求的回調。 可使用innodb_read_io_threads和innodb_write_io_threads參數列表調整。

•Purge Thread

事務提交后。該事務相關的undolog可能不再需要。Purge Thread就是用來回收不需要的undo頁的。

•PageCleaner Thread

負責臟頁的刷新操作。減輕master thread的工作以及對于用戶查詢線程的阻塞。

內存緩沖池

對于數據庫中頁的修改操作,首先修改在緩沖池中的頁,然后再以一定的頻率刷新到磁盤上。這就意味著不是每次緩沖池中的頁修改時觸發刷新回磁盤,而是通過checkpoint技術刷新回磁盤。緩沖池的大小配置可通過 innodb_buffer_pool_size來設置。

緩沖池的數據頁類型有:數據頁,索引頁,undo頁,插入緩沖,自適應哈希索引,innodb存儲的鎖信息,字典信息。

現在innodb存儲引擎允許多個緩沖池實例。這樣通過hash到不同緩沖池實例來減少鎖的競爭。該參數可以通過innodb_buffer_pool_instance.

緩沖池是一個很大的內存區域,數據庫通過LRU算法來進行管理。但是因為考慮到全表掃描的操作。因此沒有采用樸素的LRU算法。LRU列表中加入的midpoint位置。新讀取到的頁,并不是直接放到lru列表的首部,而是midpoint位置。默認情況下,在lru列表長度的5/8處。由參數innodb_old_blocks_pct控制。

插入緩沖

對于非聚集索引的插入和更新操作,Innodb存儲引擎并不是直接插入到索引頁中,而是的Insert Buffer。然后再以一定的頻率進行insertbuffer和輔助索引葉子節點的merge。著通常將多個隨機插入合并到一個操作中。大大提高了非聚集索引插入的性能。

Innodb使用 insertbuffer 條件:

•索引是非聚集索引

•索引不是unique的(如果是unique, 則又需查找索引來保證unique)

Insert Buffer 內部實現

Insert Buffer 的數據結構是一棵B+樹。 Mysql 4.1后,全局只有一棵B+樹,負責對所有表的輔助索引進行insert Buffer. 并且,這棵樹存放在共享表空間里,默認情況下即ibdata1。因此,如果僅通過獨立表空間ibd文件恢復表中數據時,可能會導致失敗。還需要通過insert buffer數據恢復表上的輔助索引。

Insert Buffer 的非葉節點存放的是查詢key, 構造如 space(4字節) + marker(1字節) + offset(4字節)。space表示記錄所在表的表空間ID,offset表示頁的偏移量。marker用來兼容老版本。

Insert Buffer 葉子幾點構造如 space + marker + offset + metadata + records。 space, marker, offset和前述意義相同。 metadata里的 IBUF_REC_OFFSET_COUNT保存了兩個字節的整數,用來排序記錄進入 Insert Buffer 的順序。通過這個順序回訪呢個得到記錄的正確值。從Insert Buffer 葉子節點的第5列開始,才是實際插入的各個記錄。

啟用 Insert Buffer索引后,輔助索引頁的記錄可能被插入到 Insert Buffer B+樹中。為了保證每次合并插入緩沖區成功, 必須要有一塊地方能標記每個輔助索引頁的可用空間。 Insert Buffer采用一個特殊的頁來標記,該頁的類型為 Insert Buffer Bitmap。每個 Insert Buffer Bitmap頁用來追蹤16384個頁,也就是256個區。每個Insert Buffer Bitmap 頁都在16384個頁的第二個頁。每個輔助索引頁在Bit map中占用4個字節,這里面主要用于表示輔助索引頁的可用數量。

合并插入緩沖

Insert Buffer中的記錄在以下情況下合并到真正的輔助索引中:

• 輔助索引頁被讀到緩沖池中;

• Insert Buffer Bitmap 頁追蹤到該輔助索引頁已無可用空間時;

• Master Thread調度時;

這樣子,對輔助索引頁的多次記錄操作通過一次操作合并到了原有的輔助索引頁中,從而提高性能。

兩次寫(Double Write)

InsertBuffer 給 Innodb 存儲引擎帶來了性能的提升,而兩次寫帶給 Innodb 存儲引擎的是數據頁的可靠性。

可能會有疑問,如果發生寫失敗,那么不是可以通過重做日志進行恢復的嗎?這的確是一個辦法,但是必須知道,重做日志記錄的是頁的物理操作,如偏移量800, 寫'aaa'記錄。但是,如果這個頁已經損壞了,對其進行重做是沒有意義的。這意味著,在修改頁前,必須有一個正確的頁的副本存在,當寫入失效發生時,先通過頁的副本還原該頁,再進行重做,這就是double write。

Double write由兩部分組成,一部分是內存中的 double write buffer。 另一部分是在物理磁盤上的共享表空間中的連續128個頁,大小和內存中(2M)一致。對緩沖池中的頁進行刷新時,并不直接寫磁盤,而是memcpy到double write buffer. 之后通過 double write buffer 分兩次,每次順序寫入共享表空間1M數據,然后馬上調用fsync同步磁盤。這個寫入因為共享表空間的double write頁是連續的,因此開銷不是很大。而完成 double write 頁的寫入后,再將double write buffer中的頁寫入各個表空間則是離散的寫入。

如果操作系統在將頁寫入磁盤的過程中發生了崩潰。那么恢復時則可以從共享表空間中double write buffer頁找到該頁的副本。將其復制到表空間再應用重做日志。

自適應HASH索引

Innodb 存儲引擎會監控對表上各索引頁的查詢,如果觀察到建立hash索引可以帶來速度的提升。則建立hash索引,稱之為自適應hash索引(AHI).

AHI有一個要求,即對這個頁的連續訪問模式必須是一樣的. 例如(a, b)這樣的聯合索引,啟訪問模式可以使:

WHERE a = xxx

WHERE a = xxx and b = yyy

訪問模式一樣就是說查詢的條件一樣。如果交替執行上述的查詢操作。則不會建立AHI。

另外,AHI還要求以同一個模式訪問了100次,頁通過該模式訪問了N次,其中N = 頁中記錄 * 1/16

刷新鄰近頁

當刷新一個臟頁時,Innodb存儲引擎會通過檢測該頁所在區的所有頁,如果是臟頁,會一起進行刷新。

異步IO

Innodb 采用異步IO的方式來處理磁盤操作。

Check Point技術

為了避免數據丟失的問題,事物數據庫系統一般都采用了write ahead log策略。即事物提交時,先寫重做日志,再修改頁。

但是重做日志不可能無限增大,緩沖值(未刷新到磁盤的臟頁)也不可能無限大。即便真可以無限大,數據庫宕機后恢復時間也會很長。所以就需要 Check Point技術,該技術可以解決:

• 縮短數據庫恢復的時間;

• 緩沖池不夠用時,可以將臟頁刷新到磁盤;

• 重做日志不可用時(重做日志都是循環利用的),刷新臟頁到磁盤;

數據庫宕機后重啟時,不需要重做所有的日志了。因為 Check Point之前的頁都已經刷新到磁盤,數據庫只需對Check Point后的重做日志進行恢復即可。從而大大縮短恢復時間。

對于Innodb 而言,其實通過 LSN ( Log Sequence Number) 來比較版本的。 LSN 是一個8字節的數字。 每個頁有LSN, 重做日志有LSN, CheckPoint 也有LSN。可以通過下述命令觀察到

mysql> show engine innodb status\G;

.............

Log sequence number 92561351052

Log flushed up to 92561351052

Last checkpoint at 92561351052

以上這篇InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Mysql5.5 InnoDB存儲引擎配置和優化
  • MySQL存儲引擎總結
  • 淺談MySQL存儲引擎選擇 InnoDB與MyISAM的優缺點分析
  • MySQL存儲引擎 InnoDB與MyISAM的區別
  • innodb存儲引擎修改表共享空間為獨立空間
  • 深入探討:MySQL數據庫MyISAM與InnoDB存儲引擎的比較

標簽:南昌 合肥 吉安 潛江 江門 武漢 長沙 東莞

巨人網絡通訊聲明:本文標題《InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)》,本文關鍵詞  InnoDb,體系,架構,和,特性,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)》相關的同類信息!
  • 本頁收集關于InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩精品在线一区二区| 成人午夜精品在线| 有码一区二区三区| 韩国女主播一区二区三区| 三级久久三级久久久| 夜夜揉揉日日人人青青一国产精品| 中国色在线观看另类| 国产精品午夜春色av| 国产精品不卡在线| 一区二区三区四区在线| 午夜电影一区二区三区| 日本成人在线电影网| 韩国中文字幕2020精品| 成人午夜免费视频| 欧美午夜一区二区| 精品欧美乱码久久久久久1区2区| 精品剧情在线观看| 国产精品久99| 亚洲一区二区五区| 美女性感视频久久| 懂色av一区二区三区蜜臀| 91小视频免费看| 欧美精品在线观看一区二区| 精品国产一区a| 成人免费一区二区三区在线观看| 一区二区免费看| 久久99精品久久久久婷婷| 成人高清视频免费观看| 欧美综合色免费| 久久久精品免费网站| 一区二区三区欧美亚洲| 免费日本视频一区| 成人免费高清在线| 欧美一三区三区四区免费在线看 | 国产精品不卡视频| 亚洲成av人片一区二区| 国产精品一区二区久激情瑜伽| 一本色道久久综合精品竹菊| 欧美mv日韩mv| 亚洲午夜三级在线| 成人免费毛片高清视频| 91精品国产91久久综合桃花| 亚洲欧美国产三级| 国产麻豆欧美日韩一区| 欧美伊人久久久久久久久影院| 国产性天天综合网| 欧美国产亚洲另类动漫| 午夜精品一区二区三区三上悠亚| 国产成人一区二区精品非洲| 3d动漫精品啪啪1区2区免费| 国产精品久久久久久户外露出| 免费观看久久久4p| 欧美色图在线观看| 专区另类欧美日韩| 国产成人在线视频播放| 精品噜噜噜噜久久久久久久久试看 | 国产嫩草影院久久久久| 全国精品久久少妇| 欧美日韩在线不卡| 亚洲综合色自拍一区| 成人一区在线看| 国产欧美日韩不卡免费| 另类小说一区二区三区| 欧美一级黄色录像| 午夜精品久久久久久久蜜桃app| 色综合久久综合中文综合网| 亚洲欧美自拍偷拍| 97久久超碰精品国产| 国产精品拍天天在线| 九九九精品视频| 欧美大片一区二区| 激情六月婷婷综合| 久久噜噜亚洲综合| 国产99久久久国产精品免费看| 26uuu亚洲| 国产成人免费在线视频| 国产欧美中文在线| av中文字幕在线不卡| 亚洲蜜臀av乱码久久精品 | 欧美电影免费观看高清完整版| 午夜伊人狠狠久久| 日韩三级视频在线看| 久久91精品久久久久久秒播| 欧美xxx久久| 91丨九色丨蝌蚪丨老版| 国产精品欧美一区喷水| 99精品视频在线播放观看| 一区二区三区四区不卡在线| 欧美视频一区二区三区四区| 日韩电影在线观看网站| 2022国产精品视频| 成人性生交大合| 亚洲综合无码一区二区| 日韩一区二区三区在线观看| 国产精品资源站在线| ●精品国产综合乱码久久久久| 欧美日韩精品一区二区三区蜜桃| 麻豆一区二区99久久久久| 久久久国产精品麻豆| 在线亚洲+欧美+日本专区| 五月天婷婷综合| 欧美激情一区二区三区蜜桃视频| 91在线一区二区| 久久国产综合精品| 亚洲欧美色综合| 日韩免费观看高清完整版| 成人丝袜高跟foot| 日韩av电影免费观看高清完整版在线观看| 精品国产91久久久久久久妲己| 91一区二区三区在线播放| 日本亚洲免费观看| 国产精品白丝在线| 日韩欧美色综合网站| 99久久99久久精品国产片果冻| 日韩成人dvd| 国产精品久久毛片a| 日韩片之四级片| 在线观看视频91| 国产成人在线影院| 精品一区二区在线播放| 亚洲狠狠丁香婷婷综合久久久| 久久久久久久性| 欧美xxxxxxxxx| 精品污污网站免费看| 成人性视频网站| 韩国v欧美v亚洲v日本v| 偷窥国产亚洲免费视频| 亚洲私人影院在线观看| 国产亚洲一二三区| 精品嫩草影院久久| 欧美一区二区在线看| 欧美日韩一区二区三区在线看| 91年精品国产| 成人激情午夜影院| 国产高清视频一区| 国产东北露脸精品视频| 国内精品视频666| 久久99精品国产麻豆婷婷洗澡| 日韩成人一级片| 亚洲国产一二三| 亚洲精品乱码久久久久久| 亚洲人成网站在线| 亚洲乱码中文字幕综合| 综合网在线视频| 亚洲免费观看高清完整版在线| 亚洲欧洲成人精品av97| 国产精品不卡视频| 亚洲欧洲精品成人久久奇米网| 中日韩免费视频中文字幕| 中文字幕在线观看一区二区| 国产精品久久久久久久久免费丝袜| 中文字幕av一区 二区| 国产午夜精品久久| 国产精品视频你懂的| 中文字幕第一区二区| 亚洲视频在线观看三级| 亚洲欧美另类久久久精品| 亚洲男人的天堂一区二区| 亚洲美女精品一区| 亚洲成人av一区二区| 免费三级欧美电影| 国产成人午夜99999| 91在线视频18| 欧美高清一级片在线| 日韩欧美123| 中文字幕欧美三区| 亚洲乱码国产乱码精品精98午夜 | 韩国理伦片一区二区三区在线播放 | 久久人人97超碰com| 久久久久久久久免费| 亚洲日本在线视频观看| 偷偷要91色婷婷| 国产酒店精品激情| 色婷婷综合久久| 欧美xxxx在线观看| 国产精品家庭影院| 日韩精品一二三四| 成人动漫在线一区| 欧美日韩一区二区欧美激情 | 亚洲一区二区三区四区五区黄| 视频一区二区欧美| 成人激情图片网| 91精品国产高清一区二区三区蜜臀| 久久成人av少妇免费| 成人综合婷婷国产精品久久免费| 欧美无乱码久久久免费午夜一区| 精品久久久久久久一区二区蜜臀| 中文字幕一区二区三区不卡在线| 日韩精品亚洲专区| 成人精品小蝌蚪| 欧美一级精品大片| 一区二区三区在线免费播放 | 裸体一区二区三区| 91污在线观看| 精品国产乱码久久久久久1区2区| 一区二区三区免费在线观看| 国产精品一区二区在线看| 在线播放91灌醉迷j高跟美女 | 极品少妇xxxx精品少妇| 欧美亚洲国产一区在线观看网站|