最佳化MySQL伺服器

來源:互聯網
上載者:User

標籤:特定   類型   2.7   需要   隊列   select   sql   檔案寫入   僵死   

一.引言

通過最佳化MySQL的參數可以提高資源使用率,從而達到提高MySQL伺服器效能的目的。MySQL服務的配置參數都在my.cnf或者my.ini的檔案中。

二.參數配置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關鍵字,查詢才會使用查詢緩衝區。

        使用查詢緩衝區可以提高查詢的速度,這種方式只適用於修改操作少且經常執行相同的查詢操作的時候。

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:表示伺服器在關閉一個串連時,等待行動的秒數。

 

最佳化MySQL伺服器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.