大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 InnoDB存儲引擎詳解

InnoDB存儲引擎詳解

更新時間:2021-01-14 17:10:06 來源:動力節(jié)點 瀏覽1115次

InnoDB存儲引擎是MySQL眾多存儲引擎中非常特別的一個,其特點是行鎖設計、支持MVCC、支持外鍵、提供一致性非鎖定讀、同時被設計用來最有效的利用以及使用內(nèi)存和CPU。從Mysql5.5版本開始,InnoDB是默認的表存儲引擎,本文我們就來詳細聊聊InnoDB存儲引擎

 

一、InnoDB的體系架構

InnoDB存儲引擎有多個內(nèi)存塊,這些內(nèi)存塊組成了一個大的內(nèi)存池。后臺線程主要負責刷新內(nèi)存池中的數(shù)據(jù)、將已修改的數(shù)據(jù)刷新到磁盤等等。

InnoDB后臺有多個不同的線程,用來負責不同的任務。主要有如下:

1.Master Thread

這是最核心的一個線程,主要負責將緩沖池中的數(shù)據(jù)異步刷新到磁盤,保證數(shù)據(jù)的一致性,包括贓頁的刷新、合并插入緩沖、UNDO 頁的回收等.

2.IO Thread

在 InnoDB 存儲引擎中大量使用了異步 IO 來處理寫 IO 請求, IO Thread 的工作主要是負責這些 IO 請求的回調(diào)處理。

3.Purge Thread

事務被提交之后, undo log 可能不再需要,因此需要 Purge Thread 來回收已經(jīng)使用并分配的 undo頁. InnoDB 支持多個 Purge Thread, 這樣做可以加快 undo 頁的回收。

4.Page Cleaner Thread

Page Cleaner Thread 是在InnoDB 1.2.x版本新引入的,其作用是將之前版本中臟頁的刷新操作都放入單獨的線程中來完成,這樣減輕了 Master Thread 的工作及對于用戶查詢線程的阻塞。

InnoDB 存儲引擎是基于磁盤存儲的,也就是說數(shù)據(jù)都是存儲在磁盤上的,由于 CPU 速度和磁盤速度之間的鴻溝, InnoDB 引擎使用緩沖池技術來提高數(shù)據(jù)庫的整體性能。緩沖池簡單來說就是一塊內(nèi)存區(qū)域。在數(shù)據(jù)庫中進行讀取頁的操作,首先將從磁盤讀到的頁存放在緩沖池中,下一次讀取相同的頁時,首先判斷該頁是不是在緩沖池中,若在,稱該頁在緩沖池中被命中,直接讀取該頁。否則,讀取磁盤上的頁。

 

二、InnoDB的關鍵特性

Insert Buffer是InnoDB存儲引擎關鍵特性中最令人激動與興奮的一個功能。不過這個名字可能會讓人認為插入緩沖是緩沖池中的一個組成部分。其實不然,InnoDB緩沖池中有Insert Buffer信息固然不錯,但是Insert Buffer和數(shù)據(jù)頁一樣,也是物理頁的一個組成部分。一般情況下,主鍵是行唯一的標識符。通常應用程序中行記錄的插入順序是按照主鍵遞增的順序進行插入的。因此,插入聚集索引一般是順序的,不需要磁盤的隨機讀取。因為,對于此類情況下的插入,速度還是非常快的。

 

如果說插入緩沖是為了提高寫性能的話,那么兩次寫是為了提高可靠性。其原理是這樣的:

1)當刷新緩沖池臟頁時,并不直接寫到數(shù)據(jù)文件中,而是先拷貝至內(nèi)存中的兩次寫緩沖區(qū)。

2)接著從兩次寫緩沖區(qū)分兩次寫入磁盤共享表空間中,每次寫入1MB。

3)待第2步完成后,再將兩次寫緩沖區(qū)寫入數(shù)據(jù)文件。

 

三、InnoDB的CheckPoint技術

CheckPoint技術是用來解決如下幾個問題:

1.縮短數(shù)據(jù)庫恢復時間

2.緩沖池不夠用時,將臟頁刷新到磁盤

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

縮短數(shù)據(jù)庫恢復時間,重做日志中記錄了的checkpoint的位置,這個點之前的頁已經(jīng)刷新回磁盤,只需要對checkpoint之后的重做日志進行恢復。這樣就大大縮短了恢復時間。緩沖池不夠用時,根據(jù)LRU算法,溢出最近最少使用的頁,如果頁為臟頁,強制執(zhí)行checkpoint,將臟頁刷新回磁盤。

 

不得不提的是InnoDB存儲引擎作為MySQL的默認存儲引擎,與傳統(tǒng)的ISAM與MyISAM相比,InnoDB的最大特色就是支持了ACID兼容事務(Transaction)功能,類似于PostgreSQL。想要深入了解InnoDB存儲引擎的小伙伴,快來觀看本站的MySQL教程吧!

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产成人综合亚洲 | 国产一国产一级毛片视频 | 四虎成人4hutv影院 | 青青爽国产手机在线观看免费 | 国产成人免费高清在线观看 | 欧美日韩国产一区三区 | 一本大道香蕉高清久久 | 欧美刺激午夜性久久久久久久 | 九九伊人网 | 亚洲深夜在线 | 欧美亚洲高清日韩成人 | 亚洲国产成人久久精品图片 | 99精品中文字幕 | 欧美97| 3d动漫精品成人一区二区三 | 天天做日日做 | 亚洲免费在线 | 88精品视频 | 国产精品九九久久精品女同 | 久久99热久久精品99 | 亚洲 欧美 成人日韩 | 在线看一级片 | 韩日视频在线观看 | 亚洲成人网在线 | 何以笙箫默在线观看 | 欧美一级毛片特黄黄 | 国产在线19禁免费观看国产 | 亚洲天堂久久 | 国产精品久久久久久一区二区三区 | 亚洲欧美日本一区 | 亚洲人xxx日本人18 | 久久精品123| 亚洲欧洲日本在线观看 | 免费一级毛片麻豆精品 | 一七六九1769视频免费观看 | 欧美区视频 | 日本不卡在线视频 | 久月婷婷 | 国产精品福利一区二区 | 亚州中文字幕 | 99热久久精里都是精品6 |