數據庫配置文件優化
硬件:內存32G innodb_file_per_table = 1 # 打開獨立表空間 max_connections = 8000 # MySQL 服務所允許的同時會話數的上限,經常出現Too Many Connections的錯誤提示,則需要增大此值 back_log = 300 #back_log 是操作系統在監聽隊列中所能保持的連接數 max_connect_errors = 1000 #每個客戶端連接最大的錯誤允許數量,當超過該次數,MYSQL服務器將禁止此主機的連接請求,直到MYSQL服務器重啟或通過flush hosts命令清空此主機的相關信息 open_files_limit = 10240 #所有線程所打開表的數量 max_allowed_packet = 32M #每個連接傳輸數據大小.最大1G,須是1024的倍數,一般設為最大的BLOB的值 wait_timeout = 10 #指定一個請求的最大連接時間 sort_buffer_size = 16M # 排序緩沖被用來處理類似ORDER BY以及GROUP BY隊列所引起的排序 join_buffer_size = 16M #不帶索引的全表掃描.使用的buffer的最小值 query_cache_size = 128M #查詢緩沖大小 query_cache_limit = 4M #指定單個查詢能夠使用的緩沖區大小,缺省為1M transaction_isolation = REPEATABLE-READ # 設定默認的事務隔離級別 thread_stack = 512K # 線程使用的堆大小. 此值限制內存中能處理的存儲過程的遞歸深度和SQL語句復雜性,此容量的內存在每次連接時被預留. log-bin # 二進制日志功能 binlog_format=row #二進制日志格式 innodb_buffer_pool_size = 24G #InnoDB使用一個緩沖池來保存索引和原始數據, 可設置這個變量到服務器物理內存大小的80% innodb_file_io_threads = 4 #用來同步IO操作的IO線程的數量 innodb_thread_concurrency = 16 #在InnoDb核心內的允許線程數量,建議的設置是CPU數量加上磁盤數量的兩倍 innodb_log_buffer_size = 16M # 用來緩沖日志數據的緩沖區的大小 innodb_log_file_size = 512M # 在日志組中每個日志文件的大小 innodb_log_files_in_group = 3 # 在日志組中的文件總數 innodb_lock_wait_timeout = 120 # SQL語句在被回滾前,InnoDB事務等待InnoDB行鎖的時間 long_query_time = 2 #慢查詢時長 log-queries-not-using-indexes #將沒有使用索引的查詢也記錄下來