[MySQL] MySQL 系統參數設定

sql_mode=""
主要為sql內部特殊規則限制,通常方便工程師會特別設定成"",代表空值不做任何限制,因為不保證工程師都能寫出高品質的SQL語句

sync_binlog=0
innodb_flush_log_at_trx_commit = 0
兩個特別是影響資料庫刷盤的參數,第一個指binlog刷盤,第二個指資料異動的刷盤,都設定為0速度最優,通常只有Master需要改成雙0,雙1的話安全性最高但最慢

max_connections = 5000
連線數上限

connect_timeout=10
連線timeout秒數

open_files_limit = 65535
能同時開啟檔案的上限

max_allowed_packet = 500M
能接受的封包最大值

transaction-isolation = REPEATABLE-READ
資料安全性隔離等級 RR為預設

query_cache_size = 0
query_cache_type = 0
過時的快取設定,兩組都設定為0,才能徹底關閉

expire_logs_days = 7
binlog保留天數,如果有硬碟空間問題,可以嘗試減少,但是相對備份檔案的有效保存期限

slow_query_log=1
long_query_time=1
slow_query_log_file=/var/lib/mysql/slow.log
log_throttle_queries_not_using_indexes=1000
min_examined_row_limit=1000
log-slow-admin-statements = TRUE
慢查詢相關記錄設定,基本上有點能力的DBA才能處理優化,目前只需要開啟紀錄即可


innodb_file_per_table = 1
讓innodb的data實體檔案 .ibd文件從ibdata1獨立出來,分散寫入改善整體效能

innodb_buffer_pool_size = 3G
*最重要影響資料庫讀取效能沒有之一
innodb引擎的快取層吃多少記憶體的設定,通常試情況設定為實體80%左右佔成

留言

這個網誌中的熱門文章

[MySQL] schema 與資料類型優化

[翻譯] 介紹現代網路負載平衡與代理伺服器