innodb儲存引擎是基於磁碟儲存的, 並將其記錄按照頁
的方式進行管理. 而磁碟io與記憶體io的速度相差可能接近1000倍, 所以使用緩衝池(buffer pool)
可以有效提高響應能力. 當資料庫需要進行資料頁讀取的時候, 先將頁資料儲存在緩衝池中, 下一次再讀取的時候, 先檢查緩衝池中是否存在資料, 如果存在則稱為命中(hit)
, 否則會讀取磁碟上的頁.
為了提高大容量讀取的效率, 緩衝池被分為多個頁面, 每個頁面可以儲存多個行. 為了提高緩衝池的管理效率, 緩衝池的頁面被實現為鍊錶, 使用lru演算法的變體來將部分資料老化掉.
使用如下命令show engine innodb status;
來檢視當前的innodb引擎狀態
InnoDB儲存引擎中的緩衝池管理1
innodb儲存引擎是基於磁碟儲存的,為了平衡cpu速度和磁碟速度之間的差距,引入了緩衝池。即通過一塊記憶體區域來彌補磁碟速度較慢對資料庫效能的影響。緩衝池是乙個比較大的記憶體區域,其中存放了各種型別的頁。那麼innodb儲存引擎是如何對這塊較大的記憶體進行管理的呢?下面介紹幾類演算法。通常來說,資...
innodb的緩衝池(buffer pool)
緩衝區是主記憶體中儲存訪問的表和索引的區域。緩衝池允許經常訪問的資料直接從記憶體處理,更加高效。為了提高大容量讀取操作的效率,緩衝池被劃分為可以容納多行資料的頁 page 為了高效管理快取,緩衝池被實現為頁 page 的列表,快取刪除用lru演算法的變種實現。下圖為緩衝池的結構 head部儲存的是最...
InnoDB 儲存引擎
innodb是事務型資料庫的首選引擎,支援事務安全表 acid 支援行鎖定和外來鍵。mysql 5.5.5 之後,innodb作為預設儲存引擎。innodb的主要特性有一下幾項。a.innodb給mysql提供了具有提交 回滾和崩潰恢復能力的事務安全 acid相容 儲存引擎。innodb鎖定在行級並...