[TOC]
## 緩存池
InnoDB存儲引擎是基于磁盤存儲的,并將其中的記錄按照頁的方式進行管理。
緩存池簡單來說就是一塊內存區域。
通過參數innodb_buffer_pool_size配置緩存池: `show variables like 'innodb_buffer_pool_size'\G`
內存結構:

InnoDB 1.0.x開始允許多個緩存實例。
參數innodb_buffer_pool_instances來進行配置 默認唯1。

參數innodb_buffer_pool_instances可以設置大于1的值就可以得到多個緩沖池實例。
再通過命令`SHOW ENGINE INNODB STATUS\G;` 觀察內容
mysql5.6開始:
`SELECT POOL_ID POOL_SIZE, FREE_BUFFERS,DATABASE_PAGES FROM INNODB_BUFFER_POOL_STATS\G`
查看緩沖狀態。
*****
## LRU List、Free List 和 Flush List
緩存池默認頁大小16kB,同樣使用LRU算法進行緩沖池進行管理。


通過information_schema架構下的表觀察unzip_LRU列表中的頁:`SELECT TABLE_NAME,SPACE,PAGE_NUMBER,COMPRESSED_SIZE FROM INNODB_BUFFER_PAGE_LRU WHERE C
OMPRSSED_SIZE <> 0;`
Flush List為臟頁列表;

*****
## 重做日志緩沖

*****
## 額外的內存池
在對一些數據結構本身的內存進行分配時,需要從額外的內存池中進行申請,當該區域的內存不夠的時候,會從緩沖池進行申請。