這篇文章主要介紹了MySQL中pager命令有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站十多年經(jīng)驗成就非凡,專業(yè)從事網(wǎng)站建設(shè)、成都做網(wǎng)站,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文發(fā)稿,廣告投放平臺等。十多年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!一、分頁結(jié)果集
在 Linux系統(tǒng) 中,我們經(jīng)常也會使用一些分頁查看命令,例如less、more等。同樣,MySQL客戶端也提供了類似的命令,用來幫助我們對查詢結(jié)果集進行分頁。比如,SHOW ENGINE INNODB STATUS時通過分頁看鎖信息時是非常有用的,這樣就不用一屏到底了。
mysql> pager less PAGER set to 'less' mysql> show engine innodb status\G [...]
現(xiàn)在你可以輕松瀏覽結(jié)果集了(使用q退出,空格向下滾動等)。
如果你想離開你的自定義pager,這很容易,只需運行pager命令:
mysql> pager Default pager wasn't set, using stdout.
或者
mysql> \n PAGER set to stdout
但是pager命令并不局限于這種基本用法!你可以將查詢輸出傳遞給大多數(shù)能夠處理文本的Unix程序。這里有一些例子。
二、丟棄結(jié)果集
有時你不關(guān)心結(jié)果集,只想查看時間信息。如果你通過更改索引為查詢嘗試不同的執(zhí)行計劃,則可能會出現(xiàn)這種情況。使用pager可以丟棄結(jié)果:
mysql> pager cat > /dev/null PAGER set to 'cat > /dev/null' # Trying an execution plan mysql> SELECT ... 1000 rows in set (0.91 sec) # Another execution plan mysql> SELECT ... 1000 rows in set (1.63 sec)
現(xiàn)在,在一個屏幕上查看所有時間信息要容易得多。
三、比較結(jié)果集
假設(shè)你正在重寫查詢,并且想要在重寫之前和之后檢查結(jié)果集是否相同。不幸的是,它有很多行:
mysql> SELECT ... [..] 989 rows in set (0.42 sec)
你可以計算校驗和,只比較校驗和,而不是手動比較每一行:
mysql> pager md5sum PAGER set to 'md5sum' # Original query mysql> SELECT ... 32a1894d773c9b85172969c659175d2d - 1 row in set (0.40 sec) # Rewritten query - wrong mysql> SELECT ... fdb94521558684afedc8148ca724f578 - 1 row in set (0.16 sec)
嗯,校驗和不匹配,出了點問題。我們重試一下:
# Rewritten query - correct mysql> SELECT ... 32a1894d773c9b85172969c659175d2d - 1 row in set (0.17 sec)
校驗和是相同的,重寫的查詢很可能產(chǎn)生與原始查詢相同的結(jié)果。
四、結(jié)合系統(tǒng)命令
如果MySQL上有很多連接,那么很難讀取SHOW PROCESSLIST的輸出。例如,如果你有幾百個連接,并且你想知道有多少連接處于Sleep狀態(tài),手動計算SHOW PROCESSLIST輸出中的行可能不是最佳解決方案。使用pager,它很簡單:
mysql> pager grep Sleep | wc -l PAGER set to 'grep Sleep | wc -l' mysql> show processlist; 337 346 rows in set (0.00 sec)
這應(yīng)該被解讀為346個連接中337正處于Sleep狀態(tài)。
現(xiàn)在稍微復(fù)雜一點:你想知道每個狀態(tài)的連接數(shù)
mysql> pager awk -F '|' '{print $6}' | sort | uniq -c | sort -r PAGER set to 'awk -F '|' '{print $6}' | sort | uniq -c | sort -r' mysql> show processlist; 309 Sleep 3 2 Query 2 Binlog Dump 1 Command
當(dāng)然,這些問題可以通過查詢INFORMATION_SCHEMA來解決。例如,計算Sleep連接的數(shù)量可以通過以下方式完成:
mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND='Sleep'; +----------+ | COUNT(*) | +----------+ | 320 | +----------+
并計算每個狀態(tài)的連接數(shù)可以通過以下方式完成:
mysql> SELECT COMMAND,COUNT(*) TOTAL FROM INFORMATION_SCHEMA.PROCESSLIST GROUP BY COMMAND ORDER BY TOTAL DESC; +-------------+-------+ | COMMAND | TOTAL | +-------------+-------+ | Sleep | 344 | | Query | 5 | | Binlog Dump | 2 | +-------------+-------+
但是,有些人可能對編寫SQL查詢感覺更舒服,而其他人則更喜歡使用命令行工具。
如你所見,pager是你的朋友!它非常易于使用,它可以以優(yōu)雅和高效的方式解決問題。你甚至可以編寫自定義腳本(如果它太復(fù)雜而無法放在一行中)并將其傳遞給pager??傊嗍褂胮ager命令能讓你的工作事半功倍。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MySQL中pager命令有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
網(wǎng)頁名稱:MySQL中pager命令有哪些-創(chuàng)新互聯(lián)
標(biāo)題來源:http://muchs.cn/article46/idgeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、外貿(mào)建站、企業(yè)建站、服務(wù)器托管、網(wǎng)站收錄、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)