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的客戶端會(huì)話連接數(shù),當(dāng)前MySQL服務(wù)器執(zhí)行的慢查詢數(shù),當(dāng)前MySQL執(zhí)行了多少SELECT語(yǔ)句、執(zhí)行了多少UPDATE/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ǔ)句:
--查詢當(dāng)前MySQL本次啟動(dòng)后的運(yùn)行統(tǒng)計(jì)時(shí)間 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)鍵字類似,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)?,show status指令的完整語(yǔ)法如下:
SHOW [統(tǒng)計(jì)范圍] STATUS [LIKE '狀態(tài)項(xiàng)名稱'] --統(tǒng)計(jì)范圍關(guān)鍵字分為GLOBAL和SESSION(或LOCAL)兩種。
在show status的完整語(yǔ)法中,"[]"中的部分是可選的,如果我們的show status語(yǔ)句中不包含統(tǒng)計(jì)范圍關(guān)鍵字,則默認(rèn)統(tǒng)計(jì)范圍為SESSION,也就是只統(tǒng)計(jì)當(dāng)前連接的狀態(tài)信息。如果我們需要查詢自當(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ǔ)句:
--查看MySQL本次啟動(dòng)后的運(yùn)行時(shí)間(單位:秒) show status like 'uptime'; --查看select語(yǔ)句的執(zhí)行數(shù) show [global] status like 'com_select'; --查看insert語(yǔ)句的執(zhí)行數(shù) show [global] status like 'com_insert'; --查看update語(yǔ)句的執(zhí)行數(shù) show [global] status like 'com_update'; --查看delete語(yǔ)句的執(zhí)行數(shù) show [global] status like 'com_delete'; --查看試圖連接到MySQL(不管是否連接成功)的連接數(shù) show status like 'connections'; --查看線程緩存內(nèi)的線程的數(shù)量。 show status like 'threads_cached'; --查看當(dāng)前打開(kāi)的連接的數(shù)量。 show status like 'threads_connected'; --查看當(dāng)前打開(kāi)的連接的數(shù)量。 show status like 'threads_connected'; --查看創(chuàng)建用來(lái)處理連接的線程數(shù)。如果Threads_created較大,你可能要增加thread_cache_size值。 show status like 'threads_created'; --查看激活的(非睡眠狀態(tài))線程數(shù)。 show status like 'threads_running'; --查看立即獲得的表的鎖的次數(shù)。 show status like 'table_locks_immediate'; --查看不能立即獲得的表的鎖的次數(shù)。如果該值較高,并且有性能問(wèn)題,你應(yīng)首先優(yōu)化查詢,然后拆分表或使用復(fù)制。 show status like 'table_locks_waited'; --查看創(chuàng)建時(shí)間超過(guò)slow_launch_time秒的線程數(shù)。 show status like 'slow_launch_threads'; --查看查詢時(shí)間超過(guò)long_query_time秒的查詢的個(gè)數(shù)。 show status like 'slow_queries';
上面的內(nèi)容就介紹到這,其他的可以參考腳本之家以前的文章。
- Mysql中 show table status 獲取表信息的方法
- mysql建表常用的sql語(yǔ)句匯總
- 記一次MySQL更新語(yǔ)句update的踩坑
- Navicat Premium操作MySQL數(shù)據(jù)庫(kù)(執(zhí)行sql語(yǔ)句)
- MySQL兩種刪除用戶語(yǔ)句的區(qū)別(delete user和drop user)
- MySQL 數(shù)據(jù)庫(kù) like 語(yǔ)句通配符模糊查詢小結(jié)
- mysql中寫判斷語(yǔ)句的方法總結(jié)
- MySQL 數(shù)據(jù)查重、去重的實(shí)現(xiàn)語(yǔ)句
- MySQL 常用的拼接語(yǔ)句匯總
- MySQL SHOW STATUS語(yǔ)句的使用
相關(guān)文章
mysql出現(xiàn)“Incorrect key file for table”處理方法
今天在恢復(fù)一個(gè)客戶數(shù)據(jù)的時(shí)候。發(fā)現(xiàn)了一貫問(wèn)題。有多個(gè)表?yè)p壞了。因?yàn)槎际侵苯影驯韽?fù)制進(jìn)去的。然后就出現(xiàn)了這個(gè)問(wèn)題問(wèn)題2013-07-07
MySQL中冗余和重復(fù)索引的區(qū)別說(shuō)明
這篇文章主要介紹了MySQL中冗余和重復(fù)索引的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Mysql事項(xiàng),視圖,函數(shù),觸發(fā)器命令(詳解)
下面小編就為大家?guī)?lái)一篇Mysql事項(xiàng),視圖,函數(shù),觸發(fā)器命令(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11
mysql查看連接數(shù)和設(shè)置會(huì)話超時(shí)問(wèn)題
這篇文章主要介紹了mysql查看連接數(shù)和設(shè)置會(huì)話超時(shí)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
MySQL中預(yù)處理語(yǔ)句prepare、execute與deallocate的使用教程
這篇文章主要介紹了MySQL中預(yù)處理語(yǔ)句prepare、execute與deallocate的使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
如何在Java程序中訪問(wèn)mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)并進(jìn)行簡(jiǎn)單的操作
這篇文章主要介紹了如何在Java程序中訪問(wèn)mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)并進(jìn)行簡(jiǎn)單的操作的相關(guān)資料,需要的朋友可以參考下2016-05-05

