MySQL運用show status檢查MySQL服務器形態信息。本站提示廣大學習愛好者:(MySQL運用show status檢查MySQL服務器形態信息)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL運用show status檢查MySQL服務器形態信息正文
在LAMP架構的網站開發進程中,有些時分我們需求理解MySQL的服務器形態信息,譬如以後MySQL啟動後的運轉時間,以後MySQL的客戶端會話銜接數,以後MySQL服務器執行的慢查詢數,以後MySQL執行了多少SELECT語句、執行了多少UPDATE/DELETE/INSERT語句等統計信息,從而便於我們依據以後MySQL服務器的運轉形態停止對應的調整或優化任務。
在MySQL中,我們可以運用SHOW STATUS指令語句來檢查MySQL服務器的形態信息。上面,我們以DOS命令窗口的方式銜接MySQL,並執行show status;指令,我們將看到如下顯示信息:
當我們執行show status語句時,MySQL將會列出多達300多條的形態信息記載,其中包括了供我們檢查理解的各種信息。不過,假如直接運用show status指令失掉300多條記載,會讓我們看得眼花紛亂,因而我們希望可以「按需檢查」一局部形態信息。這個時分,我們可以在show status語句後加上對應的like子句。例如,我們想要檢查以後MySQL啟動後的運轉時間,我們可以執行如下語句:
--查詢以後MySQL本次啟動後的運轉統計時間 show status like 'uptime';
此時,我們就可以看到如下後果:
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Uptime | 5667 | +---------------+-------+ 1 row in set (0.00 sec)
異樣的,假如我們要本次MySQL啟動後執行的SELECT語句的次數,我們可以執行如下語句:
show status like 'com_select';
對應輸入後果如下:
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 1 | +---------------+-------+ 1 row in set (0.00 sec)
此外,與WHERE子句中的LIKE關鍵字相似,show status後的LIKE關鍵字也可以運用'_' 或'%'等通配符來停止模糊婚配。例如我們可以執行如下語句來檢查MySQL服務器的線程信息:
show status like 'Thread_%';
對應輸入後果如下:
+-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_cached | 0 | | Threads_connected | 1 | | Threads_created | 1 | | Threads_running | 1 | +-------------------+-------+ 4 rows in set (0.00 sec)
值得留意的是,在上述show status like 'com_select'指令的執行示例中,顯示的SELECT語句統計信息僅僅表示以後會話銜接執行的SELECT語句數量。由於,show status指令的完好語法如下:
SHOW [統計范圍] STATUS [LIKE '形態項稱號'] --統計范圍關鍵字分為GLOBAL和SESSION(或LOCAL)兩種。
在show status的完好語法中,"[]"中的局部是可選的,假如我們的show status語句中不包括統計范圍關鍵字,則默許統計范圍為SESSION,也就是只統計以後銜接的形態信息。假如我們需求查詢自以後MySQL啟動後一切銜接執行的SELECT語句總數,我們可以執行如下語句:
show global status like 'com_select';
以上即是show status的詳細用法。由於show status的形態統計項較多,我們就不再逐個解釋每個統計項的詳細含義,在這裡,我們僅列出局部常用的形態信息檢查語句:
--檢查MySQL本次啟動後的運轉時間(單位:秒) show status like 'uptime'; --檢查select語句的執行數 show [global] status like 'com_select'; --檢查insert語句的執行數 show [global] status like 'com_insert'; --檢查update語句的執行數 show [global] status like 'com_update'; --檢查delete語句的執行數 show [global] status like 'com_delete'; --檢查試圖銜接到MySQL(不論能否銜接成功)的銜接數 show status like 'connections'; --檢查線程緩存內的線程的數量。 show status like 'threads_cached'; --檢查以後翻開的銜接的數量。 show status like 'threads_connected'; --檢查以後翻開的銜接的數量。 show status like 'threads_connected'; --檢查創立用來處置銜接的線程數。假如Threads_created較大,你能夠要添加thread_cache_size值。 show status like 'threads_created'; --檢查激活的(非睡眠形態)線程數。 show status like 'threads_running'; --檢查立刻取得的表的鎖的次數。 show status like 'table_locks_immediate'; --檢查不能立刻取得的表的鎖的次數。假如該值較高,並且有功能問題,你應首先優化查詢,然後拆分表或運用復制。 show status like 'table_locks_waited'; --檢查創立時間超越slow_launch_time秒的線程數。 show status like 'slow_launch_threads'; --檢查查詢時間超越long_query_time秒的查詢的個數。 show status like 'slow_queries';
下面的內容就引見到這,其他的可以參考以前的文章。