真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

InnoDB架構(gòu)體系-創(chuàng)新互聯(lián)

2、InnoDB架構(gòu)體系InnoDB架構(gòu)圖

image-20221217144809782

創(chuàng)新互聯(lián)建站是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),虛擬空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,成都服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國(guó)大陸、港澳臺(tái)以及歐美等多個(gè)國(guó)家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
2.1、內(nèi)存結(jié)構(gòu) 2.1.1、buffer pool

InnoDB內(nèi)存緩存區(qū),使用空間換時(shí)間的思想,給數(shù)據(jù)做了一個(gè)緩存。把熱點(diǎn)的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,減少IO次數(shù),提高效率。

show variables like '%innodb_buffer_pool%';

image-20220831143014714

buffer pool 滿了,使用LRU算法淘汰數(shù)據(jù),剩下的就是熱點(diǎn)數(shù)據(jù)

LRU算法
  • 熱區(qū)(5/8):效率優(yōu)化,對(duì)于熱區(qū)前1/4的數(shù)據(jù)被使用到后,不移動(dòng)到head位。超出熱區(qū)數(shù)據(jù),則被擠入到冷區(qū)。
  • 冷區(qū)(3/8)

buffer pool內(nèi)存回收算法,不同于傳統(tǒng)的LRU算法,分為熱區(qū)、冷區(qū)。加載數(shù)據(jù)先到冷區(qū),默認(rèn)1s后,在此被使用到,加入到熱區(qū)。

2.1.2、Change Buffer 寫緩沖

Change Buffer是Buffer Pool的一部分,如果這個(gè)數(shù)據(jù)頁(yè)不是唯一索引,不存在數(shù)據(jù)重復(fù)的情況,那就不需要從磁盤讀取數(shù)據(jù)校驗(yàn)唯一性。這種情況可以先修改內(nèi)存中緩沖池中的數(shù)據(jù)記錄,從而提高insert、update、delete的效率。5.5版本之前inset buffer,現(xiàn)在也可以處理update、delete操作,所以這塊區(qū)域 叫做Chang Buffer。

最后將Change Buffer數(shù)據(jù)記錄到磁盤的操作叫做merge

什么時(shí)候進(jìn)行merge操作呢?

  • 數(shù)據(jù)頁(yè)被訪問(wèn)
  • 數(shù)據(jù)庫(kù)shut down
  • redo log寫滿
  • 后臺(tái)線程主動(dòng)merge

調(diào)整change buffer大小,這里只能調(diào)整它占用buffer pool的比例,通過(guò)下面的參數(shù)調(diào)整

show variables like '%innodb_change_buffer_max_size%'; # 默認(rèn)25%
2.1.3、Adaptive Hash Index(自適應(yīng)索引) 2.1.4、Redo Log Buffer

redo log 不是每一次都寫入磁盤,在buffer pool中專門留出一個(gè)區(qū)域(log buffer)用于緩存,即將要寫入日志文件的數(shù)據(jù),默認(rèn)16M。

下面參數(shù)控制log buffer寫入磁盤的時(shí)機(jī):

show variables like '%innodb_flush_log_at_trx_commit%'; # 默認(rèn)值是1
含義
0 (延遲寫)log buffer每秒寫一次log file,并且log file的flush操作同時(shí)進(jìn)行。該種事務(wù)下,事務(wù)提交的時(shí)候,不會(huì)主動(dòng)觸發(fā)寫入磁盤的操作。
1 (默認(rèn),實(shí)時(shí)寫,實(shí)時(shí)刷)每次事務(wù)提交時(shí),都會(huì)把log buffer的數(shù)據(jù)寫入log file,并且刷到磁盤中。
2 (實(shí)時(shí)寫,延遲刷)每次事務(wù)提交mysql都會(huì)把log buffer的數(shù)據(jù)寫入log file。但是flush操作并不會(huì)同時(shí)進(jìn)行。該模式下,mysql會(huì)每秒執(zhí)行一次flush操作。

刷盤越快,越安全,但是也會(huì)消耗性能。

innodb_flush_log_at_trx_commit

2.2、磁盤結(jié)構(gòu) 2.2.1、系統(tǒng)表空間 System tablespaces

在默認(rèn)情況下InnoDB存儲(chǔ)引擎有一個(gè)共享表空間(對(duì)應(yīng)文件/var/lib/mysql/ibdata1),也叫系統(tǒng)表空間。

InnoDB系統(tǒng)表空間包含InnoBD數(shù)據(jù)字典和雙寫緩沖區(qū),Change Buffer 和Undo Logs,如果沒(méi)有指定file-per-table,也包含用戶創(chuàng)建的表和索引數(shù)據(jù)。

  • 數(shù)據(jù)字段:由內(nèi)部系統(tǒng)組成,存儲(chǔ)表和索引的元數(shù)據(jù)(定義信息)
  • 雙寫緩沖(InnoDB的一大特性)
雙寫緩沖

InnoBD的頁(yè)和操作系統(tǒng)的頁(yè)大小不一致,InnoDB頁(yè)大小一般為16K,操作系統(tǒng)的頁(yè)大小為4K,InnoDB的頁(yè)寫入到磁盤時(shí),需要分4次寫入。如果在這個(gè)4次寫磁盤的過(guò)程中,出現(xiàn)宕機(jī)。這種情況叫做部分寫失效,可能導(dǎo)致數(shù)據(jù)丟失。

開關(guān)參數(shù)

show variables like 'innodb_doublewrite';

雖然我們可以通過(guò)redo log進(jìn)行數(shù)據(jù)恢復(fù),但是在這個(gè)過(guò)程中,如果數(shù)據(jù)頁(yè)損壞了,就不能用來(lái)恢復(fù)數(shù)據(jù)了。所以在InnoDB數(shù)據(jù)頁(yè)進(jìn)行寫入磁盤的時(shí)候,留下一個(gè)數(shù)據(jù)頁(yè)副本,保證可以正常使用redo log恢復(fù)數(shù)據(jù),這就double write,InnoDB的雙寫技術(shù)。

double write由兩部分組成,一部分內(nèi)存中double write,一部分是磁盤上double write。因?yàn)閐ouble write是順序?qū)懭氲?,不?huì)帶來(lái)很大的開銷。

2.2.2、獨(dú)占表空間 file-per-table tablespaces

可以通過(guò)下面開關(guān)設(shè)置,每個(gè)表獨(dú)占一個(gè)表空間。

show variables like 'innodb_file_per_table'; # 默認(rèn)開啟

開啟后,每張表都會(huì)開辟一個(gè)表空間,這個(gè)文件就是數(shù)據(jù)目錄下ibd文件,存放表的數(shù)據(jù)和索引。

2.2.3、通用表空間 general tablespaces 2.2.4、臨時(shí)表空間 temporary tablespaces 2.2.5、undo表空間 undo log tablespaces 2.3、后臺(tái)線程
  • master thread:負(fù)責(zé)刷新緩存數(shù)據(jù)到磁盤并協(xié)調(diào)調(diào)度其他后臺(tái)進(jìn)程。
  • IO thread:分為change buffer、logread、write進(jìn)程。分別用來(lái)處理change buffer、重做日志、讀寫請(qǐng)求的IO回調(diào)。
  • purge thread:用來(lái)回收undo頁(yè)。
  • page cleaner thread:用來(lái)刷新臟頁(yè)。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站名稱:InnoDB架構(gòu)體系-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/dpiidi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部