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

當(dāng)我們執(zhí)行show status語(yǔ)句時(shí),MySQL將會(huì)列出多達(dá)300多條的狀態(tài)信息記錄,其中包括了供我們查看了解的各種信息。不過(guò),如果直接使用show status指令得到300多條記錄,會(huì)讓我們看得眼花繚亂,因此我們希望能夠「按需查看」一部分狀態(tài)信息。這個(gè)時(shí)候,我們可以在show status語(yǔ)句后加上對(duì)應(yīng)的like子句。例如,我們想要查看當(dāng)前MySQL啟動(dòng)后的運(yùn)行時(shí)間,我們可以執(zhí)行如下語(yǔ)句:
show status
like
'uptime'
;
此時(shí),我們就可以看到如下結(jié)果:
+
| Variable_name | Value |
+
| Uptime | 5667 |
+
1 row
in
set
(0.00 sec)
同樣的,如果我們要本次MySQL啟動(dòng)后執(zhí)行的SELECT語(yǔ)句的次數(shù),我們可以執(zhí)行如下語(yǔ)句:
show status
like
'com_select'
對(duì)應(yīng)輸出結(jié)果如下:
+
| Variable_name | Value |
+
| Com_select | 1 |
+
1 row
in
set
(0.00 sec)
此外,與where子句中的LIKE關(guān)鍵字類(lèi)似,show status后的LIKE關(guān)鍵字也可以使用'_' 或'%'等通配符來(lái)進(jìn)行模糊匹配。例如我們可以執(zhí)行如下語(yǔ)句來(lái)查看MySQL服務(wù)器的線程信息:
show status like 'Thread_%';
對(duì)應(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語(yǔ)句統(tǒng)計(jì)信息僅僅表示當(dāng)前會(huì)話連接執(zhí)行的SELECT語(yǔ)句數(shù)量。因?yàn)椋瑂how status指令的完整語(yǔ)法如下:
SHOW [統(tǒng)計(jì)范圍] STATUS [
LIKE
'狀態(tài)項(xiàng)名稱(chēng)'
]
在show status的完整語(yǔ)法中,"[]"中的部分是可選的,如果我們的show status語(yǔ)句中不包含統(tǒng)計(jì)范圍關(guān)鍵字,則默認(rèn)統(tǒng)計(jì)范圍為SESSION,也就是只統(tǒng)計(jì)當(dāng)前連接的狀態(tài)信息。如果我們需要查詢(xún)自當(dāng)前MySQL啟動(dòng)后所有連接執(zhí)行的SELECT語(yǔ)句總數(shù),我們可以執(zhí)行如下語(yǔ)句:
show global status like 'com_select';
以?即是show status的詳細(xì)用法。由于show status的狀態(tài)統(tǒng)計(jì)項(xiàng)較多,我們就不再一一解釋每個(gè)統(tǒng)計(jì)項(xiàng)的具體含義,在這里,我們僅列出部分常用的狀態(tài)信息查看語(yǔ)句:
show status
like
'uptime'
;
show [
global
] status
like
'com_select'
;
show [
global
] status
like
'com_insert'
;
show [
global
] status
like
'com_update'
;
show [
global
] status
like
'com_delete'
;
show status
like
'connections'
;
show status
like
'threads_cached'
;
show status
like
'threads_connected'
;
show status
like
'threads_connected'
;
show status
like
'threads_created'
;
show status
like
'threads_running'
;
show status
like
'table_locks_immediate'
;
show status
like
'table_locks_waited'
;
show status
like
'slow_launch_threads'
;
show status
like
'slow_queries'
;