您好,登錄后才能下訂單哦!
本篇內容主要講解“mysql常用的參數總結”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mysql常用的參數總結”吧!
1.query_cache_size
select 查詢后,會把查詢結構緩存為sql文本,當同樣的sql再次查詢時,直接從緩存中取數據返回。
Qcache_lowmem_prunes的值非常大,則表明經常出現緩沖不夠的情況,同時Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,此時需要增加緩沖大小Qcache_hits的值不大,則表明你的查詢重復率很低,這種情況下使用查詢緩沖反而會影響效率,那么可以考慮不用查詢緩沖
缺陷:
mysql在利用query_cache工作時,要求該語句涉及的表這段時間內沒有發生變化。假如數據有更新,首先會把所有的query_cache設為失效,然后更新。
如果query_cache_size過大,查詢比較多,失效也會很慢,更新或insert也會慢。
2.key_buffer_size
只對myisam表起作用
key_buffer_size指定索引緩沖區的大小,它決定索引處理的速度,尤其是索引讀的速度。
通過檢查狀態值Key_read_requests和Key_reads,可以知道key_buffer_size設置是否合理
key_read_requests總的讀取請求,key_keys為磁盤請求次數,也就是 key_read_requests/key_reads越小越好
3.table_open_cache(5.1以前版本為table_cache)
table_open_cache指定表高速緩存的大小。每當MySQL訪問一個表時,如果在表緩沖區中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內容
通過檢查峰值時間的狀態值Open_tables和Opened_tables,可以決定是否需要增加table_open_cache的值。如果你發現open_tables等于table_open_cache,并且opened_tables在不斷增長,那么你就需要增加table_open_cache的值了
4.log_bin
二進制日志,從庫可以 關閉,關閉掉大概能提高1%的性能。
5.max_connections
最大連接數
6.back_bog
back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。只有如果期望在一個短時間內有很多連接,你需要增加它,換句話說,這值對到來的TCP/IP連接的偵聽隊列的大小.
7.thread_cache
mySQL里面為了提高客戶端請求創建連接過程的性能,提供了一個連接池也就是Thread_Cache池,將空閑的連接線程放在連接池中,而不是立即銷毀.這樣的好處就是,當又有一個新的請求的時候,mysql不會立即去創建連接線程,而是先去Thread_Cache中去查找空閑的連接線程,如果存在則直接使用,不存在才創建新的連接線程.
thread_cache_size
Thread_Cache中存放的最大連接線程數.在短連接的應用中Thread_Cache的功效非常明顯
thread_stack
每個連接被創建的時候,mysql分配給它的內存.這個值一般認為默認就可以應用于大部分場景了
thread_cache命中率計算
show variables like 'thread%';show status like '%connections%';show status like '%thread%'
公式為:thread_cache_hit=(connections-thread_create)/connections*100%
8.log-slave-update
主從架構時,從庫需要保持和主庫相同的二進制時使用(默認從庫是不需要開啟二進制日志)
9。sync_binlog
如果為正,當每個sync_binlog寫入該二進制日志后,MySQL服務器將它的二進制日志同步到硬盤上
為0不與硬盤同步,為1與硬盤同步,mysql崩潰最多丟失一個語句或事務。
10.記錄慢日志,分析
slow-query-log-file
long-query-time
設置時間為1s即可
通過explain分析
語法:explain [extended] select ... from ...where
如果使用了extended ,那么在執行完explain語句后,可以使用show warnings語句查詢相應的優化信息。
type: ALL 代表全表掃描
key: NULL 沒有用到索引
Extra: Using where; Using filesort 沒有使用索引排序
-----------------------------
type: range說明沒有全表掃描
Extra: Using where 說明沒有文件排序
10.鎖
show status like 'table%';
Table_locks_immediate表示立即釋放表鎖數,Table_locks_waited表示需要等待的表鎖數
如果Table_locks_waited的值比較高,則說明存在著較嚴重的表級鎖爭用情況。這時,需要我們對應用做進一步的檢查,來確定問題所在
11.innodb_buffer_pool_size
緩沖innodb數據和索引的內存緩沖區大小,這個值越高,需要的磁盤i/o越少
12.innodb_flush_log_at_trx_commit
0:表示每秒將日志緩沖寫入到日志文件,并且將日志文件刷新到磁盤。
1:每個事務提交時,日志緩沖寫入日志文件,刷新到磁盤
2:每個提交,日志緩存寫入日志文件,但部隊日志文件做到磁盤刷新
默認為1,也是最安全的
到此,相信大家對“mysql常用的參數總結”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。