萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL_5.7新特性innodb

MySQL_5.7新特性innodb

MySQL_5.7升級之後在配置上及性能優化上做了很大的處理了,我們會發現有一個innodb-buffer-pool-size了,那麼這個innodb-buffer-pool-size如何配置會比較好呢,下面來看看吧。

這個參數主要作用是緩存innodb表的索引,數據,插入數據時的緩沖

默認值:128M

專用mysql服務器設置的大小: 操作系統內存的70%-80%最佳。

MySQL 5.7.5後Innodb_buffer_pool_size一方面可以動態分配。但另一方面也引入了一個新特性。 bp分配必須是innodb_buffer_pool_chunk_size的倍數。同時最好是:
innodb_buffer_pool_chunk_size*innodb_buffer_pool_instances.

innodb_buffer_pool_chunk_size默認是128M.

當Innodb_buffer_pool_size分配小於innodb_buffer_pool_chunk_size時,innodb_buffer_pool_chunk_size收縮到等於innodb_buffer_pool_size/innodb_buffer_pool_instances.

當於innodb_buffer_pool_size 大於innodb_buffer_pool_chunk_size時,innodb_buffer_pool_chunk_size自動取innodb_buffer_pool_chunk_size的倍數從而獲取更好的性能。

所以於MySQL5.7.5對於Buffer的分配需要提前計算一下。 盡量讓 innodb_buffer_pool_size = innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances 從而獲取一個較佳的性能。

設置方法:

my.cnf文件

innodb_buffer_pool_size = 6G

此外,這個參數是非動態的,要修改這個值,需要重啟mysqld服務。

所以設置的時候要非常謹慎。

並不是設置的越大越好。設置的過大,會導致system的swap空間被占用,導致操作系統變慢,從而減低sql查詢的效率。

例子

 代碼如下 復制代碼

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_data';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| Innodb_buffer_pool_pages_data | 1388  |
+-------------------------------+-------+
1 row in set (0.00 sec)

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total';
+--------------------------------+--------+
| Variable_name                  | Value  |
+--------------------------------+--------+
| Innodb_buffer_pool_pages_total | 131071 |
+--------------------------------+--------+
1 row in set (0.00 sec)


mysql> SHOW GLOBAL STATUS LIKE 'Innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)

'Innodb_buffer_pool_pages_data' X 100 / 'Innodb_buffer_pool_pages_total'

當結果 > 95% 則增加 innodb_buffer_pool_size, 建議使用 ram total 75%
當結果 < 95% 則減少 innodb_buffer_pool_size,
建議 'Innodb_buffer_pool_pages_data' X 'Innodb_page_size' X 1.05 / (1024*1024*1024)

copyright © 萬盛學電腦網 all rights reserved