2013年9月3日星期二

MySQL的優化技巧 - thread_cache_size

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-optimization-tip-threadcachesize.html

最近我遇到了一個MySQL數據庫,輕鬆運行PROCESSLIST 300至600行。 輕鬆設置最大連接這一數額的兩倍以上。 這是一組,我只是不同意。 我被稱為,因為它也證明了自己不是工作非常好。 所以這裡有一些我的想法的過程中,我發現了。

在我看來,大部分將不再需要在使用MySQL數據庫的最大連接數或1500或以上。 允許更多的連接到您的服務器帶來更多的開銷。 使用有效的連接。
二,了解Threads_Created的使用與連接%。 你可能認為這是創建的線程命中率。 順便說一句.. 這是不是新的信息,這是信息已經理解在社會上一些時間。 我不假裝提出這比任何其他方式試圖去幫助別人。 所以做以下理解你的電流%
顯示像'Threads_Created的'狀態;
設置@ Threads_Created的的= <從上面的查詢結果;
像“連接”的顯示狀態;
設置連接= <從上面的查詢結果;
選擇100 - ((@ Threads_Created的/ @連接)* 100)“Threads_Created的連接%”\ G



所以,如果你執行上述過程,你的百分比是什麼? 你想這是盡可能接近100。 因此,例如,最近,我遇到的服務器有%至10%以下。 那麼,你如何解決這個問題,並提高你的%?


變量thread_cache_size默認設置為0。 如果你開始注意到你的過程中成長,但不會阻止死鎖等查詢,那麼你應該檢查你的“Threads_Created的連接%”如上所述。 %將是低的,它很可能。 您可以提高%和找到甜蜜點適合您的服務器環境大大改善你的數據庫性能。 thread_cache_size可以改變現場環境。 因此,這可以讓你設置的變量,然後監視狀態“Threads_Created的價值”(見上文得到的價值)。 如果這種情況持續下去,價值遞增,然後繼續提高thread_cache_size 。 通常情況下,我更喜歡提高了幾然後移動到第500的時間的時間值25。 我經常檢查Threads_Created的連接%“和”Threads_Created的。 一旦你得到靠近甜蜜點行開始下降,你會發現獲得PROCESSLIST%。 通常一個調整thread_cache_size將讓你進入甜蜜點。

每個服務器和環境是不同的。
有些服務器可能thread_cache_size 50與98%,而有98% thread_cache_size設置為15000。 最大為16384。

所以,如果沒有別的... 找出你的百分比是先考慮作出調整。