Mysql

調整 Mysql 和監控

  • October 20, 2017

我想知道是否有人可以向我指出一種用於 MySQL 數據庫調整的工具/方法。

其實調音my.cnf如下:

我的數據庫引擎是MyISAM|Mysql 5.1.73

  • key_buffer = 500M
  • 排序緩衝區大小 = 256M
  • 讀取緩衝區大小 = 256M
  • read_rnd_buffer_size = 256M
  • myisam_sort_buffer_size = 256M
  • 執行緒記憶體大小 = 16
  • 執行緒並發 = 32
  • tmp_table_size = 500M #預設33M!
  • max_heap_table_size = 500M
  • 跳過名稱解析
  • 跳過主機記憶體
  • myisam_recover = 備份,強制
  • query_cache_size=256M

我的電腦是:

Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 16 cores
Linux 2.6.32-5
Memory - 23.58 GB total

我也看過慢查詢,但你認可或推薦什麼?

我做出了選擇:

SELECT 
   CONCAT(ROUND(KBS/POWER(1024,
   IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
   SUBSTR(' KMG',IF(PowerOf1024<0,0,
   IF(PowerOf1024>3,0,PowerOf1024))+1,1))
   recommended_key_buffer_size FROM
   (SELECT LEAST(POWER(2,32),KBS1) KBS
   FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables
WHERE engine='MyISAM' AND
   table_schema NOT IN ('information_schema','mysql')) AA ) A,
   (SELECT 2 PowerOf1024) B;

3967M

沒有辦法,只有旅途!你可以從MySQLTuner開始——它是一個發佈建議的調整腳本——它不會修改伺服器上的任何內容,我已經讀過(找不到參考,抱歉)它在執行時對性能的影響是最小的。還有這個——但它似乎已經死了。

我將重複 MySQLTuner 附帶的警告:

完全了解對 MySQL 數據庫伺服器所做的每項更改對您來說非常重要。如果您不理解腳本輸出的部分內容,或者您​​不理解建議,您應該諮詢您信任的知識淵博的 DBA 或系統管理員。始終在暫存環境中測試您的更改,並始終牢記一個領域的改進可能會對其他領域的 MySQL 產生負面影響。

有很多關於 MySQL 的書——目前最強烈推薦的一本是 Schwartz 等人的High Performance SQL。持續監控數據庫與調整一樣重要,因此當事情開始出錯時,您至少可以開始指出正確的方向。

另一件非常重要的事情要記住,您的 MySQL 數據庫只是系統的一部分,使用Linux 的 iostat、vmstat、sysstat 工具監視系統的各個組件也很重要。

你說:

我也看過慢查詢,但你認可或推薦什麼?

但是我們沒有查詢,沒有表(SHOW CREATE TABLE blah1,blah2…) - 所以很難提供幫助。該網站更多的是針對技術問題的具體問題,而不是您可能通過研究文本獲得更好答案的廣泛問題。

$$ EDIT $$回應OP的評論。 在此處查看 Schwartz 的書的目錄。你會看到這是一本大書,裡面有很多關於 MySQL 的內容。更重要的是,它將數據庫置於SYSTEM的上下文中。如果沒有更多資訊,我無法判斷,但您可能需要更改 key_buffer_size 或者您的問題可能與該特定變數無關。

首先,我有兩個建議給你——首先,升級到 5.6。然後,您將擁有觸手可及的性能模式,允許您正確地分析您的應用程序 - 分析後,您可以繼續進行調整。分析正在確定(在詳細級別)您的系統將時間花在哪裡——一旦你弄清楚了,你就可以做出合理的邏輯決定,把你的調整工作放在哪裡——它可能是 MySQL 變數——它可能是增加RAM、CPU、磁碟吞吐量或網路頻寬(連同我上面提到的作業系統分析)。

其次,我建議您將系統遷移到 InnoDB——它可以更好地利用機器的資源,並且幾乎在所有方面都更好——Google搜尋“innodb vs myisam”會給你一大堆連結——看看。MyISAM 的生命即將結束 - 請參閱此處了解Bill KarwinMorgan Tocker的評論- 這兩位都是 MySQL 世界的重要人物。

然後,閱讀我推薦的書(是的,我知道,呻吟……),如果您有更具體的問題,請在此處發布。

免責聲明:適用於在生產系統上實施更改之前測試更改的常見警告!

您對 MySQLCalculator.com 的使用將是您在調整系統的第一步中投入的最好的 2 分鐘。如果您知道它們將如何改善您對 MySQL 的使用,請僅使用大於預設值的值。

引用自:https://dba.stackexchange.com/questions/73413