當前位置:
首頁 > 知識 > MySQL 變數及性能狀態查看知識技巧

MySQL 變數及性能狀態查看知識技巧

1995年首發以來,MySQL不僅自己「星途坦蕩」,成為了現今最流行的關係型資料庫,同時還衍生出很多備受矚目的分支,如在資料庫領域撕開缺口並成功佔據一席之地的 MariaDB 及 Percona。

今天,我們就來談談如何查看MySQL性能狀態並優化。

MySQL 變數及性能狀態查看知識技巧

如何查看查看MySQL性能?

現在大家對MySQL的監控通常有兩種做法,一是連接到mysql資料庫內部,使用show status,show variables,flush status 來查看mysql的各種性能指標;二是直接使用mysqladmin查看其性能指標。

方法一的使用:

  • 查看MySQL伺服器配置信息 :mysql> show variables;
  • 查看MySQL伺服器運行的各種狀態值 :mysql> show global status;
  • 慢查詢:mysql> show variables like "%s%";
  • mysql> show global status like "%slow%";
  • 連接數:mysql> show variables like "max_connections";
  • key_buffer_size 是對MyISAM表性能影響最大的一個參數mysql> show variables like "key_buffer_size";
  • 臨時表:mysql> show global status like "created_tmp%";
  • 查看open table :mysql> show global status like "open%tables%";
  • 進程使用情況:mysql> show global status like "Thread%";
  • 查詢緩存(query cache) :mysql> show global status like "qcache%";
  • 文件打開數(open_files) :mysql> show global status like "open_files";
  • 表鎖情況 :mysql> show global status like "table_locks%";
  • 表掃描情況 :mysql> show global status like "handler_read%";

方法二的使用:

UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T"

mysqladmin兩個參數,status,extended-status

shell > mysqladmin -uroot -ppassword variables status

其中包含的信息如下:

  • Uptime: 4557887 #mysql運行的秒數
  • Threads: 1 #連接數
  • Questions: 1684130 #The number of questions (queries) from clients since the server was started.
  • Slow queries: 0 #The number of queries that have taken more than long_query_time seconds
  • Opens: 221872 #The number of tables the server has opened.
  • Flush tables: 1 #The number of flush-*, refresh, and reload commands the server has executed.
  • Open tables: 64 #The number of tables that currently are open.
  • Queries per second avg: 0.369 #從上次運行開始計算,每秒鐘平均查詢次數

關鍵的MySQL統計指標

當資料庫出現查詢緩慢或者無法響應查詢的情況時,應該怎麼辦呢?我們可以通過監控與性能及資源利用率相關的指標,來查找出現這個問題的原因,避免依賴資料庫性能的相關組件也產生影響。

MySQL用戶可以接觸到的性能指標有幾百個,本文介紹四個比較關鍵常用的指標,查詢吞吐量、查詢執行性能、連接情況和緩衝池使用情況。

查詢吞吐量:MySQL內部有一個名為 Questions 的計數器,客戶端每發送一個查詢語句,其值就會加一,可利用其來衡量查詢吞吐量,SHOW GLOBAL STATUS LIKE "Questions";

查詢執行性能:監控查詢延遲的方式有很多,例如通過 MySQL 內置的指標,或者通過查詢性能模式。 MySQL 5.6.6 版本開始默認啟用,MySQL 的 performance_schema 資料庫中的表格存儲著伺服器事件與查詢執行的低水平統計數據。

連接情況:MySQL的文檔指出,健壯的伺服器應該能夠處理成百上千的連接數,可通過SHOW VARIABLES LIKE "max_connections";的形式來查看。

緩衝池使用情況:MySQL 默認的存儲引擎 InnoDB 使用了一片稱為緩衝池的內存區域,用於緩存數據表與索引的數據。如果資料庫性能開始下滑,而磁碟 I/O 在不斷攀升,擴大緩衝池往往能帶來性能回升。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT168企業級 的精彩文章:

知乎李大海:AI不只是噱頭,滿足需求才是真落地
2035年的宇宙時空隧道已向你開啟

TAG:IT168企業級 |