佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > mysql innodb的重要組件匯總

mysql innodb的重要組件匯總

熱門(mén)標(biāo)簽:地方門(mén)戶網(wǎng)站 服務(wù)外包 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) Linux服務(wù)器 AI電銷

innodb包涵如下幾個(gè)組件 

一、innodb_buffer_pool:

       它主要用來(lái)緩存數(shù)據(jù)與索引(準(zhǔn)確的講由于innodb中的表是由聚集索引組織的,所以數(shù)據(jù)只不是過(guò)主鍵這個(gè)索引的葉子結(jié)點(diǎn))。 

二、change buffer:

  1  如果更新語(yǔ)句要更新二級(jí)索引的記錄,但是記錄所在的頁(yè)面這個(gè)里面并沒(méi)有在innodb_buffer_pool中,innodb會(huì)把這個(gè)對(duì)二級(jí)索引

  面頁(yè)的更新動(dòng)作緩存到innodb_buffer_pool的一個(gè)特定區(qū)域(change buffer);等到之后如果有別的事務(wù)B要去讀這個(gè)二級(jí)索引頁(yè)的時(shí)候,

  由于頁(yè)面還沒(méi)有,在innodb_buffer_pool中所以B事務(wù)會(huì)先把頁(yè)面載入innodb_buffer_pool,這樣子目標(biāo)頁(yè)面就算進(jìn)入innodb_buffer_pool了,

  接下來(lái)就可根據(jù)change buffer的內(nèi)容來(lái)更新索引頁(yè)面了。這樣可以節(jié)約IO操作,提高性能。

  2  當(dāng)然別的刷新機(jī)(把change buffer中的變更落盤(pán))制也是有的,比如說(shuō)當(dāng)mysql比較空閑的時(shí)候,slow shutdown 的過(guò)程當(dāng)中也會(huì)刷新

  change buffer中的內(nèi)容到磁盤(pán)

  3  監(jiān)控change buffer 

show engine innodb status;

-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 0, seg size 2, 0 merges
merged operations:
 insert 0, delete mark 0, delete 0
discarded operations:
 insert 0, delete mark 0, delete 0
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
Hash table size 34679, node heap has 0 buffer(s)
0.00 hash searches/s, 0.00 non-hash searches/s
---
LOG
---
Log sequence number 24635311
Log flushed up to 24635311
Pages flushed up to 24635311
Last checkpoint at 24635302
0 pending log flushes, 0 pending chkp writes
10 log i/o's done, 0.00 log i/o's/second

三、自適應(yīng)hash索引:

  1  如果表中的某些行會(huì)非常頻繁的用到,由于innodb表是B+樹(shù)組織起來(lái)的這一特性,最好的情況下innodb也是先讀索引頁(yè),再讀數(shù)據(jù)頁(yè),然后

  找到數(shù)據(jù);hash索引是用B+樹(shù)索引的hash為鍵,以B+樹(shù)索引的值(指向的頁(yè)面)為值的;由于有了hash索引的引入,innodb可以通過(guò)計(jì)算索引的hash

  值就直接定位到數(shù)據(jù)所在的頁(yè)面;所以對(duì)于非范圍查找的情況下hash索引這樣的處理方式是有優(yōu)勢(shì)的。

  2  要想innodb能用上bash索引還要有幾個(gè)條件1、innodb_adaptive_hash_index=1 這樣innodb就會(huì)啟用hash索引了;然而這只是完成了一半,

  innodb并不是為表中的所有行建立hash索引的,只是表中頻繁訪問(wèn)的行才會(huì)為它建立hash索引,為冷數(shù)據(jù)建立hash索引是一種浪費(fèi);

  innodb_adaptive_hash_index_parts 可以設(shè)置hash索引的分區(qū),這種可以提升并發(fā)度。

四、redo log buffer:

  redo log buffer 中的內(nèi)容會(huì)被定期的刷新到磁盤(pán),如果redo log buffer 設(shè)置的比較大它有利于mysql對(duì)大事務(wù)的處理,原因在于在大事務(wù)的處理中

  可以把redo 寫(xiě)入到redo log buffer 而不是寫(xiě)入到磁盤(pán),由于內(nèi)存比磁盤(pán)快,所以大事務(wù)的處理速度上也會(huì)比較快;也就是說(shuō)redo log buffer 比較大

  的情況下在commit 之前可以減少一些沒(méi)有必要的刷磁盤(pán)操作。

五、系統(tǒng)表空間:

  innodb 系統(tǒng)表空間中包涵如下內(nèi)容:innodb 數(shù)據(jù)字典,一些存儲(chǔ)區(qū)域如 doublewrite\changebuffer\undolog ,如果innodb_file_per_table

  沒(méi)有打開(kāi)那么那么用戶建的表就會(huì)保存到這個(gè)系統(tǒng)表空間中,這種情況下系統(tǒng)表空間也就可以看面它包涵共享表空間了。

以上就是mysql innodb的重要組件匯總的詳細(xì)內(nèi)容,更多關(guān)于mysql innodb組件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理
  • MySQL Innodb關(guān)鍵特性之插入緩沖(insert buffer)
  • MySQL InnoDB 鎖的相關(guān)總結(jié)
  • 如何區(qū)分MySQL的innodb_flush_log_at_trx_commit和sync_binlog
  • Mysql InnoDB的鎖定機(jī)制實(shí)例詳解
  • Mysql技術(shù)內(nèi)幕之InnoDB鎖的深入講解
  • 修改MySQL數(shù)據(jù)庫(kù)引擎為InnoDB的操作
  • Mysql InnoDB和MyISAM區(qū)別原理解析
  • 獲取 MySQL innodb B+tree 的高度的方法
  • MySQL InnoDB ReplicaSet(副本集)簡(jiǎn)單介紹

標(biāo)簽:蘭州 湖南 仙桃 銅川 黃山 崇左 湘潭 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql innodb的重要組件匯總》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    娄底市| 巴里| 诏安县| 沁源县| 衡水市| 东丽区| 兴海县| 灌云县| 正镶白旗| 元江| 中卫市| 乌恰县| 本溪市| 宜都市| 天台县| 大丰市| 富平县| 九江市| 新闻| 郯城县| 康定县| 聂拉木县| 博罗县| 房山区| 高唐县| 都昌县| 阳东县| 克东县| 贵港市| 裕民县| 孝感市| 增城市| 汨罗市| 喀喇沁旗| 方山县| 桓仁| 南靖县| 南涧| 和田市| 霍山县| 清丰县|