MySQL入門--記憶體buffer pool

panpong發表於2019-05-28

記憶體 buffer pool

MySQL 在啟動時預設被分配給 512MB RAM ;其中 InnoDB buffer pool 用於快取表資料、索引及其他的一些輔助緩衝池,為了高效的大量讀, buffer pool 劃分 pages ;為了高效進行快取管理, buffer pool 應用多種 LRU least recently used )演算法,將相鄰的 page 串成鏈,管理冷熱資料。

1)          配置 InnoDB Buffer Pool Size

innodb_buffer_pool_size 為控制 buffer pool 大小的引數,通常推薦系統記憶體的 50~70% 。預設值 128M innodb_buffer_pool_size 引數 5.7 後可以線上調整,必須等於或整數倍 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances

例如:

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;

or my.cnf

[mysqld]

innodb_buffer_pool_size=402653184

 

l   innodb_buffer_pool_chunk_size 引數預設值 128M ,只能在啟動時調整(命令列或者配置檔案),且以 1M 為單位;

shell> mysqld --innodb-buffer-pool-chunk-size=134217728

 or my.cnf

 [mysqld]

         innodb_buffer_pool_chunk_size=134217728

         innodb_buffer_pool_instances default value is 1;

l   innodb_buffer_pool_instances 預設為 8 (or 1 if innodb_buffer_pool_size < 1GB) ,如果是 Windows 或者 32-bit platforms ,預設值為系統自動設定 (autosized); 其作用是劃分 buffer pool 為多個區,提高併發效率。

2)          查詢狀態

mysql> SHOW STATUS WHERE Variable_name='InnoDB_buffer_pool_resize_status';

Buffer pool resizing progress is also logged in the server error log

 

3)          預載入 buffer pool

要在伺服器啟動時預載入 buffer pool ,請啟用選項:

innodb_buffer_pool_dump_at_shutdown innodb_buffer_pool_load_at_startup


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2645831/,如需轉載,請註明出處,否則將追究法律責任。

相關文章