mysql innodb的重要組件匯總
innodb包涵如下幾個組件
一、innodb_buffer_pool:
它主要用來緩存數(shù)據(jù)與索引(準(zhǔn)確的講由于innodb中的表是由聚集索引組織的,所以數(shù)據(jù)只不是過主鍵這個索引的葉子結(jié)點(diǎn))。
二、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)頁面就算進(jìn)入innodb_buffer_pool了,
接下來就可根據(jù)change buffer的內(nèi)容來更新索引頁面了。這樣可以節(jié)約IO操作,提高性能。
2 當(dāng)然別的刷新機(jī)(把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索引是一種浪費(fèi);
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
沒有打開那么那么用戶建的表就會保存到這個系統(tǒng)表空間中,這種情況下系統(tǒng)表空間也就可以看面它包涵共享表空間了。
以上就是mysql innodb的重要組件匯總的詳細(xì)內(nèi)容,更多關(guān)于mysql innodb組件的資料請關(guān)注腳本之家其它相關(guān)文章!
- MySQL基準(zhǔn)測試套件Benchmark安裝DBI組件過程分享
- Bootstrap富文本組件wysiwyg數(shù)據(jù)保存到mysql的方法
- asp.net mvc4 mysql制作簡單分頁組件(部分視圖)
- Python MySQL數(shù)據(jù)庫連接池組件pymysqlpool詳解
- Docker安裝常用組件(mysql,redis)的方法
- MYSQL優(yōu)化之?dāng)?shù)據(jù)表碎片整理詳解
- MySQL通過show status查看、explain分析優(yōu)化數(shù)據(jù)庫性能
- Mysql查詢優(yōu)化的一些實用方法總結(jié)
- mysql配置連接參數(shù)設(shè)置及性能優(yōu)化
- MySQL常用命令與內(nèi)部組件及SQL優(yōu)化詳情
相關(guān)文章
MySQL8.0創(chuàng)建用戶和權(quán)限控制示例詳解
這篇文章主要為大家介紹了MySQL8.0創(chuàng)建用戶和權(quán)限控制實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07MySql?字符集不同導(dǎo)致?left?join?慢查詢的問題解決
當(dāng)兩個表的字符集不一樣,在使用字符型字段進(jìn)行表連接查詢時,就需要特別注意下查詢耗時是否符合預(yù)期,本文主要介紹了MySql?字符集不同導(dǎo)致?left?join?慢查詢的問題解決,感興趣的可以了解一下2024-05-05Mysql數(shù)據(jù)庫表定期備份的實現(xiàn)詳解
這篇文章主要介紹了Mysql數(shù)據(jù)庫表定期備份的實現(xiàn)詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03centos7環(huán)境下創(chuàng)建mysql5.6多實例的方法詳解
這篇文章主要介紹了centos7環(huán)境下創(chuàng)建mysql5.6多實例的方法,詳細(xì)分析了centos7創(chuàng)建mysql5.6多實例的具體步驟、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-02-02CentOS 6.2 安裝 MySQL 5.7.28的教程(mysql 筆記)
本文通過圖文并茂的形式給大家介紹了CentOS 6.2 安裝 MySQL 5.7.28的教程,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-11-11設(shè)置MySQLroot賬戶密碼報錯ERROR 1064 (42000): You 
在安裝mysql的時候,設(shè)置root賬戶密碼出現(xiàn)了ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds..錯誤,本文小編給大家介紹了相關(guān)的解決方案,需要的朋友可以參考下2023-12-12docker 部署mysql詳細(xì)過程(docker部署常見應(yīng)用)
這篇文章主要介紹了docker 部署mysql之docker部署常見應(yīng)用,本文以docker部署mysql5.7.26為例,通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08