mysql 之my.cnf配置調優

對pre_thread_buffers優化(可以理解爲每個連接到mysql的用戶進程分配的內存):

  • read_buffer_size 

    該參數表示表的順序掃描,表示每個線程分配的緩衝區的大小。如在全表掃描時,會按照數據的存儲順序依次讀取數據塊,每次讀取的數據庫首先暫存在read_buffer_size中,當buffer空間被寫滿或者讀取結束後,再將buffer中的數據返回給上層調用者,以提高效率。默認128kb,不用設置太大,一般在128~256即可。

  • read_rnd_buffer_size

    該參數表示表的隨機讀取,表示每個線程分配的緩衝大小,如按照一個非索引字段做order by 排序操作時,就會利用這個緩衝區來暫存取的數據,默認是256kb,也不用設置太多,在128~256即可。

  • sort_buffer_size

    在表進行order by 和group by排序操作時,由於排序的字段沒有索引,會出現using filesort,爲了提高性能,可用這個參數增加每個線程分配的緩衝區大小。默認是2M,也不用太大,一般在128~256即可,如出現using filesort,可以用索引來解決問題。

  • thread_stack

    該參數表示每個線程的堆棧大小,默認是192kb,如果是64位系統,設置256即可,不用設置過大。

  • join_buffer_size

    表進行join連接操作時,如果關聯的字段沒有索引,會出現using jion buffer,爲了提高性能,可用次參數增加每個線程分配的換成區大小。默認是128kb,一般在128~256即可。一般出現using join buffer的時候,要通過增加索引來解決。

  • binlog_cache_size

    如果數據庫沒有什麼大事物,寫入不是特別頻繁,這種1~2M是一個合適的選擇,如果事物很大,可以適當增加這個值。

  • max_connections

    設置最大連接數,默認是100,一般設置512~1000即可。

pre_thread_buffers內存的計算公式:(read_buffer_size+read_rnd_buffer_size+sort_buffer_size+thread_stack+join_buffer_size+binlog_cache_size)*max_connections


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章