[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%左右佔成