標籤:
MySQL 配置:
1、使用 innodb_flush_method=O_DIRECT 來避免寫的時候出現雙緩衝區。
2、避免使用 O_DIRECT 和 EXT3 檔案系統 — 這會把所有寫入的東西序列化。
3、分配足夠 innodb_buffer_pool_size ,來將整個InnoDB 檔案載入到記憶體 — 減少從磁碟上讀。
4、不要讓 innodb_log_file_size 太大,這樣能夠更快,也有更多的磁碟空間 — 經常重新整理有利降低發生故障時的恢復。
5、不要同時使用 innodb_thread_concurrency 和 thread_concurrency 變數 — 這兩個值不能相容。
6、為 max_connections 指定一個小的值 — 太多的串連將耗盡你的RAM,導致整個MySQL伺服器被鎖定。
7、保持 thread_cache 在一個相對較高的數值,大約是 16 — 防止開啟串連時候速度下降。
8、使用 skip-name-resolve — 移除 DNS 尋找。
9、如果你的查詢重複率比較高,並且你的資料不是經常改變,請使用查詢快取 — 但是,在經常改變的資料上使用查詢快取會對效能有負面影響。
10、增加 temp_table_size — 防止磁碟寫。
11、增加 max_heap_table_size — 防止磁碟寫。
12、不要將 sort_buffer_size 的值設定的太高 — 可能導致串連很快耗盡所有記憶體。
13、監控 key_read_requests 和 key_reads,以便確定 key_buffer 的值 — key 的讀需求應該比 key_reads 的值更高,否則使用 key_buffer 就沒有效率了。
14、設定 innodb_flush_log_at_trx_commit = 0 可以提高效能,但是保持預設值(1)的話,能保證資料的完整性,也能保證複製不會滯後。
15、有一個測試環境,便於測試你的配置,可以經常重啟,不會影響生產環境。
MySql配置最佳化