在LAMP架構(gòu)的網(wǎng)站開發(fā)過程中,有些時候我們需要了解MySQL的服務(wù)器狀態(tài)信息,譬如當前MySQL啟動后的運行時間,當前MySQL的客戶端會話連接數(shù),當前MySQL服務(wù)器執(zhí)行的慢查詢數(shù),當前MySQL執(zhí)行了多少SELECT語句、執(zhí)行了多少UPDATE/DELETE/INSERT語句等統(tǒng)計信息,從而便于我們根據(jù)當前MySQL服務(wù)器的運行狀態(tài)進行對應(yīng)的調(diào)整或優(yōu)化工作。
在MySQL中,我們可以使用SHOW STATUS指令語句來查看MySQL服務(wù)器的狀態(tài)信息。下面,我們以DOS命令窗口的形式連接MySQL,并執(zhí)行show status;指令,我們將看到如下顯示信息:

當我們執(zhí)行show status語句時,MySQL將會列出多達300多條的狀態(tài)信息記錄,其中包括了供我們查看了解的各種信息。不過,如果直接使用show status指令得到300多條記錄,會讓我們看得眼花繚亂,因此我們希望能夠「按需查看」一部分狀態(tài)信息。這個時候,我們可以在show status語句后加上對應(yīng)的like子句。例如,我們想要查看當前MySQL啟動后的運行時間,我們可以執(zhí)行如下語句:
| --查詢當前MySQL本次啟動后的運行統(tǒng)計時間show status like 'uptime'; | 
此時,我們就可以看到如下結(jié)果:
| +---------------+-------+| Variable_name | Value |+---------------+-------+| Uptime | 5667 |+---------------+-------+1 row in set (0.00 sec) | 
同樣的,如果我們要本次MySQL啟動后執(zhí)行的SELECT語句的次數(shù),我們可以執(zhí)行如下語句:
| show status like 'com_select'; | 
對應(yīng)輸出結(jié)果如下:
| +---------------+-------+| Variable_name | Value |+---------------+-------+| Com_select | 1 |+---------------+-------+1 row in set (0.00 sec) | 
此外,與WHERE子句中的LIKE關(guān)鍵字類似,show status后的LIKE關(guān)鍵字也可以使用'_' 或'%'等通配符來進行模糊匹配。例如我們可以執(zhí)行如下語句來查看MySQL服務(wù)器的線程信息:
| show status like 'Thread_%'; | 
對應(yīng)輸出結(jié)果如下:
| +-------------------+-------+| 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'指令的執(zhí)行示例中,顯示的SELECT語句統(tǒng)計信息僅僅表示當前會話連接執(zhí)行的SELECT語句數(shù)量。因為,show status指令的完整語法如下:
| SHOW [統(tǒng)計范圍] STATUS [LIKE '狀態(tài)項名稱']--統(tǒng)計范圍關(guān)鍵字分為GLOBAL和SESSION(或LOCAL)兩種。 | 
在show status的完整語法中,"[]"中的部分是可選的,如果我們的show status語句中不包含統(tǒng)計范圍關(guān)鍵字,則默認統(tǒng)計范圍為SESSION,也就是只統(tǒng)計當前連接的狀態(tài)信息。如果我們需要查詢自當前MySQL啟動后所有連接執(zhí)行的SELECT語句總數(shù),我們可以執(zhí)行如下語句:
新聞熱點
疑難解答
圖片精選