Linux中使用mysqladmin extended-status配合Linux命令查看MySQL運(yùn)行狀態(tài)
mysqladmin是MySQL一個(gè)重要的客戶端,最常見(jiàn)的是使用它來(lái)關(guān)閉數(shù)據(jù)庫(kù),除此,該命令還可以了解MySQL運(yùn)行狀態(tài)、進(jìn)程信息、進(jìn)程殺死等。本文介紹一下如何使用mysqladmin extended-status(因?yàn)闆](méi)有"歧義",所以可以使用ext代替)了解MySQL的運(yùn)行狀態(tài)。
1. 使用-r/-i參數(shù)
使用mysqladmin extended-status命令可以獲得所有MySQL性能指標(biāo),即show global status的輸出,不過(guò),因?yàn)槎鄶?shù)這些指標(biāo)都是累計(jì)值,如果想了解當(dāng)前的狀態(tài),則需要進(jìn)行一次差值計(jì)算,這就是mysqladmin extended-status的一個(gè)額外功能,非常實(shí)用。默認(rèn)的,使用extended-status,看到也是累計(jì)值,但是,加上參數(shù)-r(--relative),就可以看到各個(gè)指標(biāo)的差值,配合參數(shù)-i(--sleep)就可以指定刷新的頻率,那么就有如下命令:
mysqladmin -uroot -r -i 1 -pxxx extended-status
+------------------------------------------+----------------------+
| Variable_name | Value |
+------------------------------------------+----------------------+
| Aborted_clients | 0 |
| Com_select | 336 |
| Com_insert | 243 |
......
| Threads_created | 0 |
+------------------------------------------+----------------------+
2. 配合grep使用
配合grep使用,我們就有:
mysqladmin -uroot -r -i 1 -pxxx extended-status \
|grep "Questions\|Queries\|Innodb_rows\|Com_select \|Com_insert \|Com_update \|Com_delete "
| Com_delete | 1 |
| Com_delete_multi | 0 |
| Com_insert | 321 |
| Com_select | 286 |
| Com_update | 63 |
| Innodb_rows_deleted | 1 |
| Innodb_rows_inserted | 207 |
| Innodb_rows_read | 5211 |
| Innodb_rows_updated | 65 |
| Queries | 2721 |
| Questions | 2721 |
3. 配合簡(jiǎn)單的awk使用
使用awk,同時(shí)輸出時(shí)間信息:
mysqladmin -uroot -p -h127.0.0.1 -P3306 -r -i 1 ext |\
awk -F"|" '{\
if($2 ~ /Variable_name/){\
print " <------------- " strftime("%H:%M:%S") " ------------->";\
}\
if($2 ~ /Questions|Queries|Innodb_rows|Com_select |Com_insert |Com_update |Com_delete |Innodb_buffer_pool_read_requests/)\
print $2 $3;\
}'
<------------- 12:38:49 ------------->
Com_delete 0
Com_insert 0
Com_select 0
Com_update 0
Innodb_buffer_pool_read_requests 589
Innodb_rows_deleted 0
Innodb_rows_inserted 2
Innodb_rows_read 50
Innodb_rows_updated 50
Queries 105
Questions 1
<------------- 12:38:50 ------------->
Com_delete 0
Com_insert 0
Com_select 0
Com_update 0
Innodb_buffer_pool_read_requests 1814
Innodb_rows_deleted 0
Innodb_rows_inserted 0
Innodb_rows_read 8
Innodb_rows_updated 8
Queries 17
Questions 1
4. 配合復(fù)雜一點(diǎn)的awk
反正也不簡(jiǎn)單了,那就更復(fù)雜一點(diǎn),這樣讓輸出結(jié)果更友好點(diǎn),因?yàn)閍wk不支持動(dòng)態(tài)變量,所以代碼看起來(lái)比較復(fù)雜:
mysqladmin -P3306 -uroot -p -h127.0.0.1 -r -i 1 ext |\
awk -F"|" \
"BEGIN{ count=0; }"\
'{ if($2 ~ /Variable_name/ && ++count == 1){\
print "----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --";\
print "---Time---|---QPS---|select insert update delete| read inserted updated deleted| logical physical";\
}\
else if ($2 ~ /Queries/){queries=$3;}\
else if ($2 ~ /Com_select /){com_select=$3;}\
else if ($2 ~ /Com_insert /){com_insert=$3;}\
else if ($2 ~ /Com_update /){com_update=$3;}\
else if ($2 ~ /Com_delete /){com_delete=$3;}\
else if ($2 ~ /Innodb_rows_read/){innodb_rows_read=$3;}\
else if ($2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=$3;}\
else if ($2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=$3;}\
else if ($2 ~ /Innodb_rows_updated/){innodb_rows_updated=$3;}\
else if ($2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=$3;}\
else if ($2 ~ /Innodb_buffer_pool_reads/){innodb_phr=$3;}\
else if ($2 ~ /Uptime / && count >= 2){\
printf(" %s |%9d",strftime("%H:%M:%S"),queries);\
printf("|%6d %6d %6d %6d",com_select,com_insert,com_update,com_delete);\
printf("|%6d %8d %7d %7d",innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted);\
printf("|%10d %11d\n",innodb_lor,innodb_phr);\
}}'
----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --
---Time---|---QPS---|select insert update delete| read inserted updated deleted| logical physical
10:37:13 | 2231| 274 214 70 0| 4811 160 71 0| 4146 0
10:37:14 | 2972| 403 256 84 23| 2509 173 85 23| 4545 0
10:37:15 | 2334| 282 232 66 1| 1266 154 67 1| 3543 0
10:37:15 | 2241| 271 217 66 0| 1160 129 66 0| 2935 0
10:37:17 | 2497| 299 224 97 0| 1141 149 95 0| 3831 0
10:37:18 | 2871| 352 304 74 23| 8202 226 73 23| 6167 0
10:37:19 | 2441| 284 233 82 0| 1099 121 78 0| 3292 0
10:37:20 | 2342| 279 242 61 0| 1083 224 61 0| 3366 0
就這樣了,這幾個(gè)命令自己用的比較多,隨手分享出來(lái)。
相關(guān)文章
Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法
這篇文章主要介紹了Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法,需要的朋友可以參考下2017-04-04mac系統(tǒng)OS X10.10版本安裝最新5.7.9mysql的方法
這篇文章給大家介紹mac系統(tǒng)OS X10.10版本安裝最新5.7.9mysql的方法,本文分步驟純文字說(shuō)明,介紹的非常詳細(xì),具有參考價(jià)值,在此分享供大家參考2015-10-10Mysql5.7中使用group concat函數(shù)數(shù)據(jù)被截?cái)嗟膯?wèn)題完美解決方法
前幾天在項(xiàng)目中遇到一個(gè)問(wèn)題,使用 GROUP_CONCAT 函數(shù)select出來(lái)的數(shù)據(jù)被截?cái)嗔?,最長(zhǎng)長(zhǎng)度不超過(guò)1024字節(jié),開(kāi)始還以為是navicat客戶端自身對(duì)字段長(zhǎng)度做了限制的問(wèn)題。后來(lái)查找出原因,解決方法大家跟隨腳本之家小編一起看看吧2018-03-03安裝Mysql時(shí)出現(xiàn)錯(cuò)誤及解決辦法
因?yàn)橐粫r(shí)手癢癢更新了一下驅(qū)動(dòng),結(jié)果導(dǎo)致無(wú)線網(wǎng)卡出了問(wèn)題,本文給大家分享安裝mysql時(shí)出現(xiàn)錯(cuò)誤及解決辦法,對(duì)安裝mysql時(shí)出現(xiàn)錯(cuò)誤相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12關(guān)于Mysql中json數(shù)據(jù)類(lèi)型的查詢(xún)操作指南
mysql在5.7版本之后就開(kāi)始支持json數(shù)據(jù)類(lèi)型,并且mysql8.0版本對(duì)json的處理已經(jīng)做的非常完善了,json數(shù)據(jù)類(lèi)型的優(yōu)點(diǎn)缺點(diǎn)可自己查詢(xún),本文主要介紹一些關(guān)于json數(shù)據(jù)類(lèi)型的查詢(xún)操作2023-07-07