優化MySQL服務器

一.引言

經過優化MySQL的參數能夠提升資源利用率,從而達到提升MySQL服務器性能的目的。MySQL服務的配置參數都在my.cnf或者my.ini的文件中。sql

二.參數配置

2.1 key_buffer_size

        key_buffer_size:表示索引緩衝區的大小。索引緩衝區全部的線程共享,增長索引緩衝區能夠獲得更好的處理索引(對全部讀和多重寫)。固然,這個值也不是越大越好,它的大小取決於內存的大小,若是這個值太大,致使操做系統頻繁換頁,也會下降系統性能。數據庫

2.2 table_cache

        table_cahce:表示同時打開表的個數,這個值越大,可以同時打開的表的個數越多。這個值不是越大越好,由於同時打開的表太多致使影響操做系統的性能。緩存

2.3 query_cache_size

        query_cache_size:表示查詢緩衝區的大小,該參數須要和query_cache_type進行配合使用。安全

        query_cache_type:0,全部的查詢都不使用查詢緩衝區,可是query_cache_type爲0,並不會致使MYSQL釋放query_cache_size所配置的緩衝區內存。服務器

        query_cache_type:1,全部的查詢都將使用查詢緩衝區,除非在查詢語句中指定SQL_NO_CACHE,如:select sql_no_cahce * from table1。性能

        query_cache_type:2,只有在查詢語句中使用SQL_CACHE關鍵字,查詢纔會使用查詢緩衝區。優化

        使用查詢緩衝區能夠提升查詢的速度,這種方式只適用於修改操做少且常常執行相同的查詢操做的時候。spa

2.4 sort_buffer_size

        sort_buffer_size:表示排序緩存區的大小,這個值越大,進行排序的速度越快。操作系統

2.5 read_buffer_size

        read_buffer_size:表示每一個線程連續掃描時爲每一個表分配的緩衝區大小(byte)。當線程從表中連續讀取記錄時須要用到這個緩衝區。線程

2.6 read_rnd_buffer_size

                read_rnd_buffer_size:表示爲每一個線程保留的緩衝區的大小,與read_buffer_size類似,但主要用於存儲按特定順序讀取出來的記錄。若是須要頻繁進行屢次連續掃描,能夠增長該值。

2.7 innoDB_buffer_pool_size

        innoDB_buffer_pool_size:表示innodb類型表和索引的最大緩存,這個值越大,查詢的速度越快,可是這個值太大會影響操做系統的性能。

2.8 max_connections

        max_connections:表示數據庫的最大鏈接數,這個鏈接數不是越大越好,由於這些鏈接會浪費內存的資源。過多的鏈接會致使MYSQL服務器僵死。

2.9 innoDB_flush_log_at_trx_commit

        innoDB_flush_log_at_trx_commit:表示什麼時候將緩衝區的數據寫入日誌文件,而且將日誌文件寫入磁盤中。該參數對於innoDB引擎很是重要。該參數有三種不一樣的值。

        0:表示每隔1秒將數據寫入日誌,並將日誌文件寫入磁盤。

        1:表示每次提交事務的時候將數據寫入日誌,並將日誌文件寫入磁盤。

        2:表示每次提交事務的時候將數據寫入日誌,每隔1秒將日誌文件寫入磁盤。

        該參數默認爲1,默認爲1時,安全性最高,可是每次提交事務或事務外的指令都須要把日誌寫入磁盤,比較費時間。參數爲0的話,安全性不是很好。爲2時,日誌仍會每秒寫入到磁盤,全部即便出現故障,通常也不會丟失超過1~2秒的更新。

2.10 back_log

        back_log:表示在MYSQL暫時中止回答新請求以前的短期內,多少個請求能夠被存在堆棧中,換句話說,該值表示對到來的TCP/IP鏈接的偵聽隊列的大小。只有指望在一個短期內有不少的鏈接,才須要增長該參數的值。操做系統在這個隊列的大小也有限制,設定back_log高於操做系統的限制將是無效的。

2.11 interactive_timeout

       interactive_timeout:表示服務器在關閉鏈接前等待行動的秒數。

2.12 sort_buffer_size

       sort_buffer_size:表示每一個須要進行排序的線程分配的緩衝區的大小。增長這個參數的值能夠提升order by 或group by 操做的速度。

2.13 thread_cache_size

        thread_cache_size:表示能夠複用的線程的數量,若是有不少的新的線程,爲了提升性能能夠增大該值。

2.14 wait_timeout

         wait_timeout:表示服務器在關閉一個鏈接時,等待行動的秒數。

相關文章
相關標籤/搜索