欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

你居然還不知道MySQL存儲引擎InnoDB分為內(nèi)存架構(gòu)、磁盤架構(gòu)?

2021-02-25    分類: 網(wǎng)站建設(shè)

關(guān)于MySQL對于后端程序員的重要性不言而喻,而InnoDB也已經(jīng)是MySQL默認(rèn)的存儲引擎。作為我們每天打交道的存儲引擎,我們對它可能需要對它有更多的了解。這樣對于很多靈異事件,才能從容應(yīng)對。

本次文章的內(nèi)容大部分來自MySQL8.0的官方文檔,之所以沒有選擇現(xiàn)成的資料,而去挑戰(zhàn)自己的弱點——英語。是因為最近意識到,學(xué)習(xí)知識應(yīng)該到知識的源頭,可能最開始會很吃力,但我相信對于后續(xù)的技術(shù)提升一定是有幫助的。與所有希望在技術(shù)上深挖的程序員同胞共勉~

簡介

首先來看官方文檔對InnoDB的解釋:

InnoDB是一個平衡了高可用和高性能的通用存儲引擎。

優(yōu)勢

  • 保護用戶數(shù)據(jù):DML操作,通過事務(wù)來遵循ACID模型
  • 高性能:行級鎖,一致性讀取
  • 最小化主鍵查找的IO:聚簇索引
  • 數(shù)據(jù)完整性:外鍵
  • 崩潰恢復(fù)
  • 在主內(nèi)存緩存索引數(shù)據(jù)和緩存表
  • 外鍵
  • 校驗機制
  • 只要你在設(shè)計表時選擇了合適的主鍵,主鍵列where、order by、group by、join操作會被自動優(yōu)化
  • 自適應(yīng)哈希索引

InnoDB架構(gòu)

InnoDB的整體架構(gòu)可以分為兩個部分:內(nèi)存架構(gòu)、磁盤架構(gòu)

你居然還不知道Mysql存儲引擎InnoDB分為內(nèi)存架構(gòu)、磁盤架構(gòu)?

InnoDB內(nèi)存架構(gòu)

InnoDB在內(nèi)存中主要包括下面幾個部分:緩沖池、Change緩沖區(qū)、自適應(yīng)哈希索引、Log緩沖區(qū)

【一】緩沖池

簡介: 存儲訪問時的緩存表和索引數(shù)據(jù)。在專用服務(wù)器上,通常會為緩沖池分配80%的物理內(nèi)存

作用: 可以快速從內(nèi)存獲取數(shù)據(jù),加快了處理速度。

技術(shù)要點:

Page:為了high-volume的讀取效率,緩沖池進一步被分為頁的結(jié)構(gòu)。

LRU:為了緩存的管理效率,緩沖池實現(xiàn)page間的鏈表,使用LRU算法。緩沖池使用調(diào)整后的LRU(最近最少使用)算法,當(dāng)需求添加新的page時,最近最少使用的page被清除,同時新頁面被添加到鏈表的中間部分

這種中間點插入的策略,把鏈表分為兩個子鏈表

  • 頭部:最近被訪問過的“年輕”頁
  • 尾部:最近被訪問的old page

這樣使新子列表中保存更重要的page,舊子列表包含較少使用的page,這部分page是被清除的候選page

你居然還不知道Mysql存儲引擎InnoDB分為內(nèi)存架構(gòu)、磁盤架構(gòu)?

默認(rèn)情況下,算法配置如下:

  • 舊子列表:緩沖池的3/8
  • midpoint(中間點)是新子列表尾部和舊子列表頭部的交界
  • 當(dāng)舊頁被訪問,會被移動到緩沖池的頭部,隨著數(shù)據(jù)庫的運行,一直沒有被訪問的頁會一直后移,直至最后被移除。

【二】Change Buffer

Change Buffer是一種特殊的數(shù)據(jù)結(jié)構(gòu),當(dāng)某些頁面不在緩沖池中,緩存會改變二級索引page,這可能會造成insert,update,delete(DML)操作會與其他從緩沖池中的讀操作加載的page合并。

你居然還不知道Mysql存儲引擎InnoDB分為內(nèi)存架構(gòu)、磁盤架構(gòu)?

不同于聚簇索引,二級索引通常不唯一,同時二級索引的插入相對隨機。

同時,為了避免頻繁的IO隨機讀寫,當(dāng)更新和刪除操作時,并不會立即寫入磁盤,而是會選擇系統(tǒng)空閑時定期進行寫入磁盤的操作。Change Buffer在內(nèi)存中,是緩沖池中的一部分,在磁盤中,是系統(tǒng)表空間的一部分。

【三】自適應(yīng)哈希索引

簡介: InnoDB可以基于搜索的模式,使用索引鍵前綴構(gòu)建哈希索引,也就是說,這個哈希索引是由經(jīng)常訪問的索引頁面構(gòu)建的。

作用: 在不犧牲事務(wù)特性和可靠性的基礎(chǔ)上,使InnoDB像一個內(nèi)存數(shù)據(jù)庫一樣工作,也就是說在一定情況下,通過這種哈希索引的方式會提升查詢速度。InnoDB中存在一種監(jiān)視索引搜索的機制,但這種機制有時反倒帶來額外的開銷。所以在選擇是否使用哈希索引前,可能需要做好基準(zhǔn)測試,否則還是建議禁用。

InnoDB磁盤架構(gòu)

通過上面的整體架構(gòu)圖可以看到,InnoDB在磁盤中存儲的信息包括:各種表空間(TableSpace),Redo Log。

InnoDB對數(shù)據(jù)存儲方式的設(shè)計,主要是基于表空間的形式。表空間的種類如下圖所示:

你居然還不知道Mysql存儲引擎InnoDB分為內(nèi)存架構(gòu)、磁盤架構(gòu)?

使用InnoDB表的限制,來自MySQL官方文檔,感覺有些還是挺有趣的,但可能實際場景中并不會用到:

一個表最多包含1017列,表示并沒有創(chuàng)建過這樣多列的表

一個表最多可以創(chuàng)建64個二級索引

索引鍵前綴長度限制為3072字節(jié)

Undo Log 和 Redo Log

這里還有兩個Log區(qū)域需要關(guān)注一下:

Undo Log

Undo Log是與事務(wù)讀寫關(guān)聯(lián)的,主要作用在事務(wù)回滾和多版本并發(fā)控制中。

Undo Log在回滾段中存儲,回滾段在Undo表空間和全局臨時表空間中。Undo log被分為insert undo log 和update undo log。Insert undo log 只在事務(wù)回滾時需要,一旦事務(wù)提交就被丟棄。Update undo log 也被用在一致性讀,在一致性讀中可能需要update undo log的信息來生成該行數(shù)據(jù)早期的版本。

關(guān)于undo log的建議

定期地提交事務(wù),包括哪些只包含一致性讀的事務(wù),否則,InnoDB不會丟棄update undo log中的數(shù)據(jù),回滾段會變得越來越大,占滿空間。undo log中回滾段的物理空間,通常小于相應(yīng)插入或更新的行,可以利用這個信息計算回滾段需要的空間

Redo Log

也就是ib_logfile0和ib_logfile1兩個文件

這里結(jié)合的是MySQL的WAL(Write-Ahead Logging)也就是先寫日志,再寫磁盤,具體過程是下面這樣:當(dāng)有一條記錄要更新,先將記錄寫到redo log,并更新內(nèi)存,InnoDB會在空閑的時候,把操作記錄更新到磁盤。

網(wǎng)站欄目:你居然還不知道MySQL存儲引擎InnoDB分為內(nèi)存架構(gòu)、磁盤架構(gòu)?
網(wǎng)址分享:http://chinadenli.net/news19/102919.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計企業(yè)網(wǎng)站制作、用戶體驗、微信小程序、響應(yīng)式網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
日本本亚洲三级在线播放| 91亚洲精品亚洲国产| 日韩精品毛片视频免费看| 国产亚洲午夜高清国产拍精品| 欧美日韩在线视频一区| 国产超碰在线观看免费| 国产精品美女午夜福利| 国产欧美一区二区色综合| 高清一区二区三区不卡免费| 亚洲精品中文字幕无限乱码| 内射精品欧美一区二区三区久久久| 日本高清不卡一二三区| 台湾综合熟女一区二区| 免费特黄一级一区二区三区| 中文字幕一区久久综合| 亚洲欧美天堂精品在线| 亚洲综合色在线视频香蕉视频| 欧美老太太性生活大片| 国产午夜福利在线免费观看| 成人午夜在线视频观看| 亚洲综合天堂一二三区| 韩日黄片在线免费观看| 国产亚洲精品久久久优势| 国产一区二区久久综合| 91精品日本在线视频| 中文字幕精品人妻一区| av在线免费观看在线免费观看| 久久国内午夜福利直播| 日本一区不卡在线观看| 国产又黄又爽又粗视频在线| 欧洲日韩精品一区二区三区| 精品久久少妇激情视频| 香蕉久久夜色精品国产尤物| 亚洲一区二区亚洲日本| 男人操女人下面国产剧情| 欧美日韩国产免费看黄片| 亚洲中文在线男人的天堂| 国产成人午夜福利片片| 深夜日本福利在线观看| 亚洲视频一区自拍偷拍另类| 男人操女人下面国产剧情|