mysql數(shù)據(jù)庫中innodb的組件有哪些-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)mysql數(shù)據(jù)庫中 innodb的組件有哪些,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

景洪網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,景洪網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為景洪成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的景洪做網(wǎng)站的公司定做!

innodb包涵如下幾個組件

一、innodb_buffer_pool:

       它主要用來緩存數(shù)據(jù)與索引(準確的講由于innodb中的表是由聚集索引組織的,所以數(shù)據(jù)只不是過主鍵這個索引的葉子結(jié)點)。

二、change buffer:

1  如果更新語句要更新二級索引的記錄,但是記錄所在的頁面這個里面并沒有在innodb_buffer_pool中,innodb會把這個對二級索引

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

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

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

2  當(dāng)然別的刷新機(把change buffer中的變更落盤)制也是有的,比如說當(dāng)mysql比較空閑的時候,slow shutdown 的過程當(dāng)中也會刷新

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

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  如果表中的某些行會非常頻繁的用到,由于innodb表是B+樹組織起來的這一特性,好的情況下innodb也是先讀索引頁,再讀數(shù)據(jù)頁,然后

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

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

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

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

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

四、redo log buffer:

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

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

的情況下在commit 之前可以減少一些沒有必要的刷磁盤操作。

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

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

以上就是mysql數(shù)據(jù)庫中 innodb的組件有哪些,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞標(biāo)題:mysql數(shù)據(jù)庫中innodb的組件有哪些-創(chuàng)新互聯(lián)
URL鏈接:http://bm7419.com/article4/dschie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、微信小程序、網(wǎng)站收錄域名注冊、網(wǎng)站營銷、網(wǎng)站排名

廣告

聲明:本網(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)站