MySQL 配置:緩存
一、使用 innodb_flush_method=O_DIRECT 來避免寫的時候出現雙緩衝區。服務器
二、避免使用 O_DIRECT 和 EXT3 文件系統 — 這會把全部寫入的東西序列化。性能
三、分配足夠 innodb_buffer_pool_size ,來將整個InnoDB 文件加載到內存 — 減小從磁盤上讀。測試
四、不要讓 innodb_log_file_size 太大,這樣可以更快,也有更多的磁盤空間 — 常常刷新有利下降發生故障時的恢復時間。ip
五、不要同時使用 innodb_thread_concurrency 和 thread_concurrency 變量 — 這兩個值不能兼容。內存
六、爲 max_connections 指定一個小的值 — 太多的鏈接將耗盡你的RAM,致使整個MySQL服務器被鎖定。requests
七、保持 thread_cache 在一個相對較高的數值,大約是 16 — 防止打開鏈接時候速度降低。it
八、使用 skip-name-resolve — 移除 DNS 查找。io
九、若是你的查詢重複率比較高,而且你的數據不是常常改變,請使用查詢緩存 — 可是,在常常改變的數據上使用查詢緩存會對性能有負面影響。innodb
十、增長 temp_table_size — 防止磁盤寫。
十一、增長 max_heap_table_size — 防止磁盤寫。
十二、不要將 sort_buffer_size 的值設置的過高 — 可能致使鏈接很快耗盡全部內存。
1三、監控 key_read_requests 和 key_reads,以便肯定 key_buffer 的值 — key 的讀需求應該比 key_reads 的值更高,不然使用 key_buffer 就沒有效率了。
1四、設置 innodb_flush_log_at_trx_commit = 0 能夠提升性能,可是保持默認值(1)的話,能保證數據的完整性,也能保證複製不會滯後。
1五、有一個測試環境,便於測試你的配置,能夠常常重啓,不會影響生產環境。