天天看點

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 參數– 這2個值是不相容的。

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_read_requests應該比key_reads值高,否則你不能高效的使用key_buffer

14.将innodb_flush_log_at_trx_commit設定為0将會提高性能,但是如果你要保持預設值(1)的話,那麼你就要確定資料的完整性,同時你也要確定複制不會滞後。

15.你要有一個測試環境,來測試你的配置,并且在不影響正常生産的情況下,可以常常進行重新開機。