1、mysql的鏈接數mysql
MYSQL數據庫安裝完成後,默認最大鏈接數是100,通常流量稍微大一點的論壇或網站這個鏈接數是遠遠不夠的,鏈接數少的話,在大併發下鏈接數會不夠用,會有不少線程在等待其餘鏈接釋放,就可能會致使數據庫鏈接超時或者響應時間過長,因此須要調整最大鏈接數。linux
一、設置mysql的最大鏈接數,在mysql的配置文件中增長:
max_connections = 1000 #mysql的最大鏈接數,默認若是不寫的話是100個
wait_timeout = 10 超時時間
二、查看當前有多少個鏈接
show status like '%Threads_connected%';
show processlist;sql
2、mysql的緩存。緩存來自兩個維度。數據庫
緩存1(MySQL層):查詢緩存 Query Cachewindows
緩存2(存儲引擎層):InnoDB_Buffer_Pool緩存
一、查詢緩存Qcache服務器
(1)mysql查詢緩存開啓須要注意的問題多線程
(2)Qcache參數。查詢緩存參數,在mysql配置文件中添加,linux下爲my.cnf,windows下爲my.ini:併發
1.query_cache_type = on 是否開啓查詢緩存,具體選項是off,on函數
2.query_cache_size = 200M 分配給查詢緩存的總內存,通常建議不超過256M
3.query_cache_limit = 1M 這個選項限制了MySQL存儲的最大結果。若是查詢的結果比這個大,那麼就不會被緩存。
(3)查看Qcache狀態
查詢qcache狀態:
SHOW VARIABLES LIKE '%query_cache%';
命令參數列表
have_query_cache 該MySQL 是否支持Query Cache;
query_cache_limit 緩存塊大小,超過該大小不會被緩存
query_cache_min_res_unit 每一個qcache最小的緩存空間大小
query_cache_size 分配給查詢緩存的總內存
query_cache_type 是否開啓
query_cache_wlock_invalidate 控制當有鎖加在表上的時候,是否先讓該表相關的 Query Cache失效
(4)監控Qcache的使用狀況
查詢qcache當前使用狀況:
SHOW STATUS LIKE 'Qcache%';
命令參數列表
Qcache_free_blocks Query Cache中目前還有多少剩餘的blocks。若是該值顯示較大,則說明Query Cache 中的內存碎片較多了,可能須要尋找合適的機會進行整理。若是這個值很是大,可使用FLUSH QUERY CACHE;語句來清理查詢緩存碎片以提升內存使用性能。該語句不從緩存中移出任何查詢。
Qcache_free_memory Query Cache 中目前剩餘的內存大小
Qcache_hits 緩存命中次數
Qcache_inserts 多少次未命中而後插入
Query Cache 命中率= Qcache_hits / ( Qcache_hits + Qcache_inserts );
Qcache_lowmem_prunes 多少條Query 由於內存不足而被清除出Query
Qcache_not_cached 由於query_cache_type 的設置或者不能被cache 的Query 的數量
Qcache_queries_in_cache 當前Query Cache 中cache 的Query 數量;
Qcache_total_blocks 當前Query Cache 中的block 數量
二、存儲引擎層-innodb buffer pool
(1)Innodb_buffer_pool參數:
innodb_buffer_pool_size :Innodb_buffer_pool的大小
innodb_buffer_pool_dump_now:默認爲關閉OFF。若是開啓該參數,中止MySQL服務時,InnoDB將InnoDB緩衝池中的熱數據保存到本地硬盤。
innodb_buffer_pool_load_at_startup:默認爲關閉OFF。若是開啓該參數,啓動MySQL服務時,MySQL將本地熱數據加載到InnoDB緩衝池中。
(2)查看Innodb_buffer_pool的狀態
查詢Innodb_buffer_pool狀態:
SHOW VARIABLES LIKE '%innodb_buffer_pool%';
命令參數列表
innodb_buffer_pool_size 設置的bp大小
innodb_buffer_pool_filename 熱數據文件名稱
innodb_buffer_pool_dump_at_shutdown 中止mysq服務時是否自動保存熱數據
innodb_buffer_pool_dump_now 啓動mysql服務時是否自動讀取熱數據
(3)監控Innodb_buffer_pool使用狀況
查詢Innodb_buffer_pool當前使用狀況:
SHOW STATUS LIKE '%Innodb_buffer_pool%';
命令參數列表
主要關注的兩個參數
Innodb_buffer_pool_read_requests 總共查詢bp的次數
Innodb_buffer_pool_reads 從物理磁盤中獲取到數據的次數
經過這兩個參數咱們能夠知道bp的命中率