在網站開發過程當中,有些時候咱們須要瞭解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';
對應輸出結果以下:spa
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 1 | +---------------+-------+ 1 row in set (0.00 sec)
此外,與WHERE
子句中的LIKE
關鍵字相似,show status
後的LIKE
關鍵字也可使用'_'或'%'等通配符來進行模糊匹配。例如咱們能夠執行以下語句來查看MySQL服務器的線程信息:線程
show status like 'Thread_%';
對應輸出結果以下:code
+-------------------+-------+ | 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
的狀態統計項較多,咱們就再也不一一解釋每一個統計項的具體含義,在這裏,咱們僅列出部分經常使用的狀態信息查看語句: