max_connections:針對所有的賬號所有的客戶端並行連接到MYSQL辦事的最大並行連接數。簡單說是指MYSQL辦事可以或許同時接管的最大並行連接數。
//1=1.25mb內存
max_user_connections : 針對某一個賬號的所有客戶端並行連接到MYSQL辦事的最大並行連接數。簡單說是指同一個賬號可以或許同時連接到mysql辦事的最大連接數。
max_connection_errors:針對某一個IP主機連接中斷與mysql辦事連接的次數,若是跨越這個值,這個IP主機將會阻攔從這個IP主機發送出去的連接懇求。碰到這種景象,需履行flush hosts。
key_buffer
索引
show status like "key_%"
+------------------------+-----------+
| Variable_name | Value |
+------------------------+-----------+
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 319333 | 未用的key_buffer緩存簇(blocks)數
| Key_blocks_used | 10913 | 已用的key_buffer緩存簇數
| Key_read_requests | 135030864 | 請求key_buffer的次數
| Key_reads | 253 | key_buffer中找不到,讀取磁盤的次數
| Key_write_requests | 3314618 |
| Key_writes | 34235 |
+------------------------+-----------+
key_buffer使用率 = (Key_blocks_used/(Key_blocks_used+Key_blocks_unused))*100%
key_buffer未命中率 = Key_reads/Key_read_requests*100%
query_cache_size
mysql> show status like 'Qcache_%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 5654 | //目前剩餘的 Query Cache 中內存 Block 數目
| Qcache_free_memory | 15682784 | //目前剩餘的 Query Cache 內存總量
| Qcache_hits | 34658070 | //命中query_cache的次數
| Qcache_inserts | 67537959 | //query_cache新增的次數(沒有命中的次數)
| Qcache_lowmem_prunes | 1648364 | //query_cache滿載後,將緩存數據移除的次數
| Qcache_not_cached | 232266744 |
| Qcache_queries_in_cache | 7584 | //當前Query Cache 中的SQL 數量
| Qcache_total_blocks | 21468 | //Query Cache的Block總量
+-------------------------+-----------+
query_cache命中率 = (Qcache_hits/(Qcache_hits+Qcache_inserts))*100%
thread_cache
mysql> show status like 'Threads_%';
+-------------------+--------+
| Variable_name | Value |
+-------------------+--------+
| Threads_cached | 4 | //緩存的連接
| Threads_connected | 16 | //目前連接數
| Threads_created | 246310 | //沒使用thread_cache,而創建的連接
| Threads_running | 1 | //運行的連接數
+-------------------+--------+
thread_cache命中率=((Connections-Threads_created)/Connections)*100%
table_cache
mysql> show status like 'Open%tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 200 | //當前打開的表緩存數
| Opened_tables | 0 | //打開過的表緩存數
+---------------+-------+
如果Opened_tables 遠大於table_cache,那說明table_cache太小了
innodb_buffer_pool_size
innodb_buffer_pool_size
定義了 InnoDB 存儲引擎的表數據和索引數據的最大內存緩衝區大小。和 MyISAM 存儲引擎不同, MyISAM 的 key_buffer_size 只能緩存索引鍵,而 innodb_buffer_pool_size 卻可以緩存數據塊和索引鍵。適當的增加這個參數的大小,可以有效的減少 InnoDB 類型的表的磁盤 I/O 。在一個以 InnoDB 爲主的專用數據庫服務器上,可以考慮把該參數設置爲物理內存大小的 60%-70% ,在運行多個服務的服務器上,不宜過大,視情況5-20%即可。
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 * Innodb_page_size * 1.05 / (1024*1024*1024)