mysql引數之innodb_buffer_pool_size大小設定
阿新 • • 發佈:2020-09-08
mysql引數之innodb_buffer_pool_size大小設定 用於快取索引和資料的記憶體大小,這個當然是越多越好, 資料讀寫在記憶體中非常快, 減少了對磁碟的讀寫。 當資料提交或滿足檢查點條件後才一次性將記憶體資料重新整理到磁碟中。然而記憶體還有作業系統或資料庫其他程序使用, 根據經驗,推薦設定innodb-buffer-pool-size為伺服器總可用記憶體的75%。 若設定不當, 記憶體使用可能浪費或者使用過多。 對於繁忙的伺服器, buffer pool 將劃分為多個例項以提高系統併發性, 減少執行緒間讀寫快取的爭用。buffer pool 的大小首先受 innodb_buffer_pool_instances 影響, 當然影響較小。 Innodb_buffer_pool_pages_data Innodb buffer pool快取池中包含資料的頁的數目,包括髒頁。單位是page。 eg、showglobal status like 'Innodb_buffer_pool_pages_data'; Innodb_buffer_pool_pages_total innodb buffer pool的頁總數目。單位是page。 eg:show global status like 'Innodb_buffer_pool_pages_total'; show global status like 'Innodb_page_size'; 檢視@@innodb_buffer_pool_size大小,單位位元組 SELECT @@innodb_buffer_pool_size/1024/1024/1024; #位元組轉為G 線上調整InnoDB緩衝池大小,如果不設定,預設為128M set global innodb_buffer_pool_size = 4227858432; ##單位位元組 計算Innodb_buffer_pool_pages_data/Innodb_buffer_pool_pages_total*100% 當結果 > 95% 則增加 innodb_buffer_pool_size, 建議使用實體記憶體的 75% 當結果 < 95% 則減少 innodb_buffer_pool_size, 建議設定大小為: Innodb_buffer_pool_pages_data* Innodb_page_size * 1.05 / (1024*1024*1024)