mysql 配置文件

max_connections:針對所有的賬號所有的客戶端並行連接到MYSQL辦事的最大並行連接數。簡單說是指MYSQL辦事可以或許同時接管的最大並行連接數。

//1=1.25mb內存


max_user_connections : 針對某一個賬號的所有客戶端並行連接到MYSQL辦事的最大並行連接數。簡單說是指同一個賬號可以或許同時連接到mysql辦事的最大連接數。


max_connection_errors:針對某一個IP主機連接中斷與mysql辦事連接的次數,若是跨越這個值,這個IP主機將會阻攔從這個IP主機發送出去的連接懇求。碰到這種景象,需履行flush hosts。


show status


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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章