這篇文章主要為大家展示了“InnoDB體系架構是怎么樣的”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“InnoDB體系架構是怎么樣的”這篇文章吧。
創(chuàng)新互聯是一家專注于成都網站設計、成都網站建設、外貿網站建設與策劃設計,汾西網站建設哪家好?創(chuàng)新互聯做網站,專注于網站建設十載,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:汾西等地區(qū)。汾西做網站價格咨詢:13518219792
InnoDB的整體架構包括多個內存組成的緩沖池
和多個后臺線程
。
緩存池緩存硬盤數據(解決CPU速度和磁盤速度嚴重不匹配問題),后臺進程保證緩存池和硬盤數據一致性,并保證數據異常宕機時能恢復到正常狀態(tài)。
緩存池
包括三個部分:redo log buffer,innodb_buffer_pool,innodb_additional_mem_pool。
redo log buffer:緩存重做日志。
innodb_buffer_pool:緩存數據,索引信息。
innodb_additional_mem_pool:緩存LRU鏈表等。
后臺線程
包括master thread,IO thread,purge thread,page cleaner thread。
master thread:負責刷新緩存數據到硬盤上。
IO thread:處理insert buffer,重做日志,讀寫請求等回調。
purge thread:回收undo頁。
page cleaner thread:刷新臟頁。
InnoDB內部協調管理
一條SQL進入MySQL服務器,會依次經過連接池模塊(進行鑒權,生成線程),查詢緩存模塊(是否被緩存過),SQL接口模塊(簡單的語法校驗),查詢解析模塊,優(yōu)化器模塊(生成語法樹),然后在進入InnoDB存儲引擎模塊。至此,剛才的過程上篇都寫過了,所以這邊就一筆帶過。
進入InnoDB后,首先會判斷該SQL涉及到的頁是否存在于緩存中,注意MySQL是每次從硬盤中加載相應的頁到內存中,進行相關操作的。如果不存在,則加載數據到緩存中。
其次,如果是select語句,則讀取相關語句,并將查詢結果返回值服務器。如果是update,insert,delete語句,則讀取相關的頁面,先試圖給該SQL涉及的記錄枷鎖。
接著,加鎖成功后,先寫undo頁,邏輯記錄這些記錄修改前的狀態(tài),然后在修改相關記錄,這些操作會同步到redo log buffer,繼而生成重新日志。
最后,修改完成,將臟數據刷新到硬盤上。
以上是“InnoDB體系架構是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!
新聞名稱:InnoDB體系架構是怎么樣的
鏈接URL:http://jinyejixie.com/article2/pggsoc.html
成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站設計、外貿建站、網站策劃、App開發(fā)、網站設計公司、企業(yè)建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯