国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

InnoDB存儲引擎(一)

2019-11-09 13:29:15
字體:
來源:轉載
供稿:網友

InnoDB存儲引擎(一)

整體結構

這里寫圖片描述

內存池

維護線程/進程內部數據結構緩存磁盤文件(cache)對數據的更新或者新增操作,避免直接刷新磁盤重做日志緩沖(redo log) 這里寫圖片描述

后臺線程

Master Hhread,將更新的數據(包括新增和被修改的數據)異步刷新到磁盤,維護內存池和磁盤中的數據的一致性。IO Thread分為Insert buffer Thread,log thread,read thread,write thread。purge thread,回收undo logPage cleaner thread,刷新臟頁到磁盤(由master thread 獨立出來的) 這里寫圖片描述

Write Ahead log:是指當事務提交上,先做重做日志,再修改頁。滿足事務中持久性要求。

Check Point:檢查點技術,數據庫系統為了縮短數據庫發生宕機恢復所需的時間所采取的一種刷新臟頁的方法。 檢查點技術分為兩種,sharp checkpoint和fuzzy checkpoint。sharp checkpoint用在數據庫關機時,將所有的臟數據全部刷新到磁盤。fuzzy checkpoint是按照一定的策略定時部分的刷新臟頁數據,較為復雜,此處不做介紹。

InnoDB關鍵特性

插入緩沖(性能提升) Insert Buffer 當新增數據并且存在非聚焦索引時,會有對非聚焦索引頁的離散讀。當出現這種情況時,MySQL會先判斷當前的非聚焦索引頁是否存在于緩沖池中,如果存在則直接修改或者新增。如果不存在緩沖池中,則會先放到緩沖池中(類似于臟頁),再以一定的頻率merge之后,插入到實際的非聚焦索引頁。Change Buffer 插入緩沖的升級,用在刪除或者更新的情況下。在刪除時,并不會對非聚焦索引全部刪除。在更新是,也不馬上更新非聚焦索引。以上兩種優化手段,適用于 1. 存在非聚焦索引 2. 非聚焦索引不唯一。兩次寫(可靠性) 對某頁寫回磁盤的過程中,如果出現宕機,并且導致頁破壞(無法使用重做日志)。會出現數據丟失的情況。針對此問題,mysql首先會將所有需要寫入的頁(2MB)全部刷回到共享表空間中(沒有離散寫),再將更新的數據寫入到各自的表空間中。 這里寫圖片描述自適應哈希索引(性能提升) InnoDB查找耗時主要在于B+樹的查找,通過使用哈希這種數據結構,將查詢參數(Key)和值(位置)對應來減少查找的耗時。異步IO(性能提升) 異步IO在對磁盤進行寫入時,是非阻塞式的,能對多個查詢或者插入操作進行merge,以減少實際的IO次數。刷新鄰接頁(性能提升) 在刷新臟頁時,會檢查該頁所在所在區的所有頁,連同刷新。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰顺县| 沂水县| 江口县| 石棉县| 大悟县| 桑日县| 博客| 紫阳县| 清新县| 宜章县| 醴陵市| 海盐县| 驻马店市| 阜新市| 嘉善县| 长宁县| 武义县| 辽阳市| 南部县| 邹城市| 石首市| 旬阳县| 肥乡县| 台前县| 孟村| 洪湖市| 株洲市| 衡阳县| 黄大仙区| 巴马| 阳信县| 吉水县| 齐河县| 敖汉旗| 宿迁市| 青海省| 延庆县| 城口县| 策勒县| 辽阳县| 青龙|