(三)Mysql InnoDB 架構全解

2021-10-16 16:54:50 字數 823 閱讀 2146

我們先看一下記憶體結構。

buffer pool主要分為3個部分: buffer pool. change buffer、adaptive hash index, 另外還有乙個 (redo) log buffer

buffer pool快取的是頁面資訊,包括資料頁、索引頁。

buffer pool預設大小是128m (134217728位元組),可以調整。

檢視系統變數:

show variables like

'%innodb_buffer_pool%'

;

檢視伺服器狀態,裡面有很多跟buffer pool相關的資訊:

show

status

like

'%innodb_buffer_pool%'

;

這些引數都可以在官網查到詳細的含義,用搜尋功能。

記憶體的緩衝池寫滿了怎麼辦? (redis設定的記憶體滿了怎麼辦?)innodb用lru 演算法來管理緩衝池(鍊錶實現,不是傳統的lru,分成了 young和old),經過淘汰的資料就是熱點資料。

change buffer 是 buffer pool 的一部分。

如果這個資料頁不是唯一索引,不存在資料重複的情況,也就不需要從磁碟載入索引頁判斷資料是不是重複(唯一性檢查)。這種情況下可以先把修改記錄在記憶體的緩衝 池中,從而提公升更新語句(insert. delete. update)的執行速度。

這一塊區域就是change buffero 5.5之前叫insert buffer插入緩衝,現在也能支援 delete 和 update。

未完待續

MySQL InnoDB的體系架構

innodb儲存引擎是乙個完整支援acid事務的mysql儲存引擎,其特點是 行鎖設計,支援mvcc,支援外來鍵,提供一致性非鎖定讀,同時被設計用來最有效的利用以及使用記憶體和cpu 1.innodb體系架構 圖中簡單顯示了innodb的儲存引擎的體系架構,從圖中可見,innodb有多個記憶體塊,可...

MySQL InnoDB體系架構之記憶體

先上圖 1.緩衝池 innodb儲存引擎是基於磁碟儲存的,並將其中的記錄按照頁的方式進行管理。通常使用緩衝池來提高資料庫的整體效能。緩衝池簡單說就是一塊記憶體,通過記憶體的速度彌補磁碟速度較慢對資料庫效能的影響。在資料庫中進行讀操作時,首先將從磁碟讀到的頁存放在緩衝池中,下一次讀取相同的頁時,首先判...

MySQL InnoDB三大特性之 插入緩衝

innodb儲存引擎有三大特性非常令人激動,它們分別是插入緩衝 兩次寫和自適應雜湊,本篇文章先介紹第乙個特性 插入緩衝 insert buffer 非聚集索引寫效能問題 為了闡述非聚集索引寫效能問題,我們先來看乙個例子 mysql create table t id int auto increme...